ODTUG Aggregator ODTUG Blogs http://localhost:8080 Sat, 19 Aug 2017 16:26:14 +0000 http://aggrssgator.com/ LEAP#337 RGB LED Glow with Opamps http://blog.tardate.com/2017/08/leap337-rgb-led-glow-with-opamps.html <p>For a while I’ve been thinking of ways to generate a pseudo-random rainbow glow on a composite RBG LED. In particular, while avoiding just throwing a microprocessor at the problem! I finally settled on three independent opamp-based triangle wave generators that have a nice drifting phase offset. As always, <a href="https://github.com/tardate/LittleArduinoProjects/tree/master/Electronics101/RgbLedGlow">all notes, schematics and code are in the Little Electronics &amp; Arduino Projects repo on GitHub</a> <a href="https://github.com/tardate/LittleArduinoProjects/tree/master/Electronics101/RgbLedGlow"><img src="http://leap.tardate.com/Electronics101/RgbLedGlow/assets/RgbLedGlow_build.jpg" alt="hero_image" /></a></p> http://blog.tardate.com/2017/08/leap337-rgb-led-glow-with-opamps.html Sat Aug 19 2017 13:28:26 GMT-0400 (EDT) LEAP#336 Comparator-based Relaxation Oscillator http://blog.tardate.com/2017/08/leap336-comparator-based-relaxation-oscillator.html <p>A quick test of a classic comparator-based relaxation oscillator, modified for single-supply LM358 OpAmp. As always, <a href="https://github.com/tardate/LittleArduinoProjects/tree/master/Electronics101/Oscillators/ComparatorRelaxation">all notes, schematics and code are in the Little Electronics &amp; Arduino Projects repo on GitHub</a> <a href="https://github.com/tardate/LittleArduinoProjects/tree/master/Electronics101/Oscillators/ComparatorRelaxation"><img src="http://leap.tardate.com/Electronics101/Oscillators/ComparatorRelaxation/assets/ComparatorRelaxation_build.jpg" alt="hero_image" /></a></p> http://blog.tardate.com/2017/08/leap336-comparator-based-relaxation-oscillator.html Sat Aug 19 2017 08:16:46 GMT-0400 (EDT) 5 City #GoldenGate Tour https://dbasolved.com/2017/08/18/5-city-goldengate-tour/ <p>Oracle GoldenGate is the best replication platform on the market, so much so, the product management team is hitting the road to show customers!  Over the next two months (August 2017 /September 2017) we will be taking to the road to provide customers with hands-on experience of the latest release.  These events will be limited in space and many have filled up already; but if you have the opportunity to attend these will be great events!</p> <p>The cites and dates that we will be attending (US Leg):</p> <p>August 23, 2017 &#8211; San Francisco, Oracle Headquarters, Redwood Shores<br />August 29, 2017 &#8211; Atlanta, Ga, Oracle Offices<br />September 12, 2017 &#8211; Chicago, Il, Willis Tower (Oracle Offices)<br />September 13, 2017 &#8211; Chicago, Il, Deerfield (Oracle Office)<br />September 19, 2017 &#8211; Dallas, TX<br />September 26, 2017 &#8211; Boston, MA </p> <p>If you are interested in attending one of these events, please contact Patrick Cassidy (patrick.cassidy@oracle.com) to register.  Hurry seats are filling up, if not already filled up!!!</p> <p>Look forward to seeing you at one of the shows.</p> <p>Note: for the international people reading, we have not forgotten about you.  We are planning on seeing you soon!</p> <p>Enjoy!!</p><br />Filed under: <a href='https://dbasolved.com/category/replication-2/golden-gate/'>Golden Gate</a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=dbasolved.com&#038;blog=41578630&#038;post=1671&#038;subd=curtisbl&#038;ref=&#038;feed=1" width="1" height="1" /> curtisbl http://curtisbl.wordpress.com/?p=1671 Fri Aug 18 2017 20:59:55 GMT-0400 (EDT) Oracle #GoldenGate 12.3.0.1 has arrived! https://dbasolved.com/2017/08/18/oracle-goldengate-12-3-0-1-has-arrived/ <p dir="auto">As of today, August 18, 2017, the latest release of Oracle GoldenGate 12c (12.3.0.1.0) is avaliable for download! You should checkout the new Microservices Architecture!</p> <p dir="auto">You can find the links to download Oracle GoldenGate 12c (12.3.0.1.0) at this link: <a href="http://www.oracle.com/technetwork/middleware/goldengate/downloads/index.html" target="_blank" rel="noopener">http://www.oracle.com/technetwork/middleware/goldengate/downloads/index.html</a></p> <p dir="auto">This release bring many new features to Oracle Goldengate:</p> <p dir="auto"><strong>GoldenGate 12.3 Platform Features – All Platforms</strong> <strong>For the Oracle Database</strong></p> <p dir="auto">&#8211;<strong>Support for Oracle Database 12.2.0.1<br /> </strong>Oracle Database 12.2.0.1 provides many exciting features for organizations to use. Oracle GoldenGate 12.3 is designed to leverage many of these features in Oracle Database 12.2.0.1 as well. Organizations will have a fully supported and integrated replication framework that provides organizations with performance and throughput enhancements within the Integrated Capture, Integrated Apply and many others processes.</p> <p dir="auto"><strong>-Microservices Architecture</strong></p> <p dir="auto">A new services based architecture that simplifies configuration, administration and monitoring for large scale and cloud deployments. The RESTFul services enable secure remote access using role based authorization over HTTPS and Websocket (streaming) protocols. Each service also has an embedded HTML5 browser based UI for better user experience in addition to traditional command line access for ggsci style scripting/automation. It enables Applications to embed, automate, and orchestrate GoldenGate across the enterprise.</p> <p dir="auto">&#8211;<strong>Parallel Replicat<br /> </strong>Highly scalable apply engine for the Oracle database that can automatically parallelize the apply workload taking into account dependencies between transactions. Parallel Replicat provides all the benefits of Integrated Replicat performing the dependency computation and parallelism outside the database. It parallelizes the reading and mapping of trail files and provides the ability to apply large transactions quickly in Oracle Database 11g (11.2.0.4) and later.</p> <p dir="auto">&#8211;<strong>Automatic Conflict-Detection-Resolution (CDR) without application changes<br /> </strong>Quickly enable active/active replication while ensuring consistent conflict-detection-resolution (CDR) without modifying application or database structure. With automatic CDR you can now configure and manage Oracle GoldenGate to automate conflict detection and resolution when it is configured in Oracle Database 12c Release 2 (12.2) and later.</p> <p dir="auto">&#8211;<strong>Procedural Replication to enable simpler application migrations and upgrades<br /> </strong>Procedural Replication in Oracle GoldenGate allows you to replicate Oracle-supplied PL/SQL procedures, avoiding the shipping and applying of high volume records usually generated by these operations.</p> <p dir="auto">&#8211;<strong>Database Sharding<br /> </strong>Oracle Sharding is a scalability and availability feature designed OLTP applications that enables distribution and replication of data across a pool of Oracle databases that share no hardware or software. The pool of databases is presented to the application as a single logical database. Data redundancy is managed by Oracle GoldenGate via Active-Active replication that is automatically configured and orchestrated through the database engine invoking the RestFul API&#8217;s.</p> <p dir="auto">&#8211;<strong>Fast Start Capture</strong><br /> Fast Start Capture is a new feature for Integrated Capture that will improve overall performance and enable you to quickly start capturing and replicating transactions.<br /> <strong><br /> For SQL Server<br /> </strong><br /> &#8211;<strong>Introducing a new, CDC based Capture</strong></p> <p>Oracle GoldenGate 12.3 will introduce a new Change Data Capture based Extract, which offers new functional advantages over our existing transaction log based capture method.Benefits include:</p> <ul> <li>  Capture from SQL Server 2016</li> <li>  Remote Capture</li> <li>  Transparent Data Encryption (TDE) support</li> </ul> <p dir="auto">&#8211;<strong>Certification to capture, from an AlwaysOn primary and/or synchronous secondary database</strong><br /> With an increase in uptake of our customers running their application critical databases in an AlwaysOn environment, Oracle GoldenGate 12.3 is the first version to certify capture from either the Primary database, or a read-only Synchronous Secondary database.</p> <p dir="auto"><strong>-Delivery to SQL Server 2016 Enterprise Edition</strong></p> <p dir="auto"><strong>For DB2 z/OS</strong></p> <p dir="auto">&#8211;<strong>Remote Execution</strong><br /> The new remote execution includes both remote capture and delivery for DB2 z/OS. Running Oracle GoldenGate off the z/OS server significantly reduces the MIPS consumption and allows the support of AES encryption and credential store management.<br /> <strong><br /> For DB2 i</strong></p> <p dir="auto">&#8211;<strong>Support for IBM i 7.3</strong><br /> Oracle GoldenGate supports the latest DB2 for i platform.<br /> <strong><br /> For MySQL</strong></p> <p dir="auto"><strong>&#8211; DDL replication between MySQL Databases</strong><br /> With the DDL replication between MySQL databases, there is no need to stop Oracle GoldenGate replication when there are DDL changes on the source database.</p> <p dir="ltr">Enjoy!!</p><br />Filed under: <a href='https://dbasolved.com/category/replication-2/golden-gate/'>Golden Gate</a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=dbasolved.com&#038;blog=41578630&#038;post=1664&#038;subd=curtisbl&#038;ref=&#038;feed=1" width="1" height="1" /> curtisbl http://dbasolved.com/?p=1664 Fri Aug 18 2017 19:46:20 GMT-0400 (EDT) LEAP#335 MCP2200 LED Chaser (just because) http://blog.tardate.com/2017/08/leap335-mcp2200-led-chaser-just-because.html <p>The MCP2200 USB-UART transceiver has 8 GPIO pins. Yes, you read that correctly. With such unexpected I/O capabilities, I feel obliged to do the only responsible thing: blink LEDs. Seven LED outputs and one input for a push-button to control direction of the “chase” sequence. As simple C program using the hidapi and we’re done! As always, <a href="https://github.com/tardate/LittleArduinoProjects/tree/master/Electronics101/MCP2200/Chaser">all notes, schematics and code are in the Little Electronics &amp; Arduino Projects repo on GitHub</a> <a href="https://github.com/tardate/LittleArduinoProjects/tree/master/Electronics101/MCP2200/Chaser"><img src="http://leap.tardate.com/Electronics101/MCP2200/Chaser/assets/Chaser_build.jpg" alt="hero_image" /></a></p> http://blog.tardate.com/2017/08/leap335-mcp2200-led-chaser-just-because.html Fri Aug 18 2017 08:10:48 GMT-0400 (EDT) SQL Server 2012 and Changes to the Backup Operator Permissions http://dbakevlar.com/2017/08/sql-server-2012-changes-backup-operator-permissions/ <div class="pf-content"> <!-- Easy Plugin for AdSense V8.67 --> <!-- [leadin: 1 urCount: 1 urMax: 0] --> <div class="ezAdsense adsense adsense-leadin" style="float:right;margin:12px;"><script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- kevlar_ad --> <ins class="adsbygoogle" style="display:inline-block;width:320px;height:100px" data-ad-client="ca-pub-5103295461547706" data-ad-slot="5182487270"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script></div> <!-- Easy Plugin for AdSense V8.67 --> <p>I&#8217;m off to Columbus, Ohio tomorrow for a full day of sessions on Friday for the <a href="http://www.ooug.org/">Ohio Oracle User Group</a>.  The wonderful Mary E. Brown and her group has set up a great venue and a fantastic schedule.  Next week, I&#8217;m off to <a href="http://www.sqlsaturday.com/635/eventhome.aspx">SQL Saturday Vancouve</a>r to present on DevOps for the DBA to a lovely group of SQL Server attendees.  It&#8217;s my first time to Vancouver, British Columbia and as it&#8217;s one of the cities on our list of potential future locations to live, I&#8217;m very excited to visit.</p> <p><a href="http://dbakevlar.com/2017/08/sql-server-2012-changes-backup-operator-permissions/magical/" rel="attachment wp-att-7093"><img class="alignnone size-full wp-image-7093" src="https://i2.wp.com/dbakevlar.com/wp-content/uploads/2017/08/magical.gif?resize=500%2C200" alt="" data-recalc-dims="1" /></a></p> <p>Speaking of SQL Server-  <a href="https://www.delphix.com/">Delphix</a>&#8216;s own <strong>SQL Server COE</strong>, (Center of Excellence) meets twice a month to discuss various topics surrounding our much-loved Microsoft offering.  This week, one of the topics discussed a previous change made to permissions to the <strong>Backup Operator</strong> role from SQL Server 2008R2 to SQL Server 2012. This feature, referred to as &#8220;File Share Scoping&#8221; was unique to 2008R2 clusters and no longer exists.</p> <p>Now many may say, &#8220;but this is such an old version.  We&#8217;ve got SQL Server 2017, right?&#8221;  The challenge is, there are folks out there with 2008 instances and it&#8217;s good to know about these little changes that can make big impacts to your dependent products.  This change impacted products with shared backups file systems and as we know, having access to a backup can offload a lot of potential load on a system.</p> <p>Now, for my product, <a href="https://www.delphix.com/">Delphix</a>, we are dependent on read access to backup files for the initial creation of our &#8220;golden copy&#8221; that we source everything from.  The change in SQL Server 2012 from the previous File Share Scoping in 2008R2 was only made to <strong>Microsoft Failover Clusters</strong>, to then offering access to only those with <strong>Administrator</strong>, where previously, anyone with <strong>Backup Operator</strong> role could attain access, too.</p> <p>Our documentation clearly states during configuration of a Delphix engine for the validated sync, (creation of the golden copy) the customer must grant read access for the backup shares to the Delphix OS user and doesn&#8217;t state to grant Backup Operator.  As with everything, routine can spell failure, as the Backup Operator role previously offered this access with 2008R2 and it was easy to assume the configuration complete upon database level role grants.</p> <p>Using Powershell from the command line, note that you can&#8217;t view the root of the shared drive with the file server role, Backup Operator in the newer release.</p> <pre>PS C:\Users\user&gt; Get-SmbShareAccess -name "E$" | ft -AutoSize Name ScopeName AccountName AccessControlType AccessRight ---- --------- ----------- ----------------- ----------- <strong>E$ USER1-SHARE BUILTIN\Administrators Allow Full</strong> E$ * BUILTIN\Administrators Allow Full <strong>E$ * BUILTIN\Backup Operators Allow Full</strong> E$ * NT AUTHORITY\INTERACTIVE Allow Full</pre> <div></div> <p>If you&#8217;d like to read more details on backup and recovery changes from SQL Server 2008R2 to 2012, check out the documentation from Microsoft <a href="https://technet.microsoft.com/en-us/library/cc771973(v=ws.11).aspx">here</a>.</p> <p>&nbsp;</p> </div><br><br><img src="https://i2.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/ico-tag.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> Tags:&nbsp;&nbsp;<br><br><div style="width:100%"><table align="left" width="100%" cellspacing="0" cellpadding="0" bgcolor="#f1f1f1" border="0px;"> <tbody> <tr bgcolor="#ffffff"><td align="center" width="17%" valign="top"> <span class="sb_title">Del.icio.us</span><br> <a href="http://del.icio.us/post?url=http://dbakevlar.com/2017/08/sql-server-2012-changes-backup-operator-permissions/&title=SQL Server 2012 and Changes to the Backup Operator Permissions"> <img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/delicious.gif?w=600" border="0" align="absmiddle" data-recalc-dims="1"> </a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">Facebook</span><br> <a href="http://www.facebook.com/share.php?u=http://dbakevlar.com/2017/08/sql-server-2012-changes-backup-operator-permissions/"><img src="https://i0.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/facebook_icon.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">TweetThis</span><br> <a href="http://twitthis.com/twit?url=http://dbakevlar.com/2017/08/sql-server-2012-changes-backup-operator-permissions/&title=SQL Server 2012 and Changes to the Backup Operator Permissions"><img src="https://i2.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tweet.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">Digg</span><br> <a href="http://digg.com/submit?phase=2&url=http://dbakevlar.com/2017/08/sql-server-2012-changes-backup-operator-permissions/&title=SQL Server 2012 and Changes to the Backup Operator Permissions"><img src="https://i0.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/digg.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">StumbleUpon</span><br> <a href="http://www.stumbleupon.com/submit?url=http://dbakevlar.com/2017/08/sql-server-2012-changes-backup-operator-permissions/&title=SQL Server 2012 and Changes to the Backup Operator Permissions"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/stumble.gif?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td></tr> </tbody></table></div><br><div style="clear:both"></div><div style="background:#EEEEEE; padding:0px 0px 0px 15px; margin:10px 0px 0px 0px;"><div style="padding:5px 0px 5px 0px;"><b>Comments:</b>&nbsp;&nbsp;<a href="http://dbakevlar.com/2017/08/sql-server-2012-changes-backup-operator-permissions/#respond">0 (Zero), Be the first to leave a reply!</a></div><br><div style="clear:both"></div><div style="padding:13px 0px 5px 0px;"><span style="border-bottom:1px dashed #003399;padding-bottom:4px;"><strong>You might be interested in this:</strong></span>&nbsp;&nbsp;<br><ul style="margin:0; padding:0; padding-top:10px; padding-bottom:5px;"><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2016/05/options-for-pre-em13c-target-software-and-non-supported-os-in-em13c/" >Options For Pre-EM13c Target Software and Non-Supported OS in EM13c</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2017/01/ozar-professional-salary-data-post-1/" >Ozar Professional Salary Data- Post 1</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2012/09/sql-saturday-169-tomorrow/" >SQL Saturday #169 Tomorrow!</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2013/09/em-12c-snap-clone/" >EM 12c Snap Clone</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2015/07/consolidation-planning/" >Consolidation Planning</a></li></ul></div></div><hr style="color:#EBEBEB" /><small>Copyright © <a href="http://dbakevlar.com">DBA Kevlar</a> [<a href="http://dbakevlar.com/2017/08/sql-server-2012-changes-backup-operator-permissions/">SQL Server 2012 and Changes to the Backup Operator Permissions</a>], All Right Reserved. 2017.</small><br><p>The post <a rel="nofollow" href="http://dbakevlar.com/2017/08/sql-server-2012-changes-backup-operator-permissions/">SQL Server 2012 and Changes to the Backup Operator Permissions</a> appeared first on <a rel="nofollow" href="http://dbakevlar.com">DBA Kevlar</a>.</p> dbakevlar http://dbakevlar.com/?p=7092 Wed Aug 16 2017 14:35:09 GMT-0400 (EDT) LEAP#334 Exercising the MCP2200 USB-UART transceiver http://blog.tardate.com/2017/08/leap334-exercising-the-mcp2200-usb-uart-transceiver.html <p>The MCP2200 is a USB-to-UART serial converter device. It is getting a bit on the old side, only supporting USB 2.0, and all the software support provided is Windows-only. Nevertheless, I got hold of the MCP2200 Breakout Module to find out more. I was particularly intersted to see how far I could get under MacOSX, including configuration over the HID Interface. The answer is pleasantly: all the way! As always, <a href="https://github.com/tardate/LittleArduinoProjects/tree/master/Electronics101/MCP2200/DevKit">all notes, schematics and code are in the Little Electronics &amp; Arduino Projects repo on GitHub</a> <a href="https://github.com/tardate/LittleArduinoProjects/tree/master/Electronics101/MCP2200/DevKit"><img src="http://leap.tardate.com/Electronics101/MCP2200/DevKit/assets/DevKit_build.jpg" alt="hero_image" /></a></p> http://blog.tardate.com/2017/08/leap334-exercising-the-mcp2200-usb-uart-transceiver.html Wed Aug 16 2017 10:18:59 GMT-0400 (EDT) LEAP#333 Measure Thy Own Voltage http://blog.tardate.com/2017/08/leap333-measure-thy-own-voltage.html <p>One of the issues with analogue measurements on the Arduino is that typically we assume an accurate 5V reference, and need to add fudge factors for a calibrated reading. Well, I borrowed some code and re-read the ADC part of the datasheet again, and there is a neat little trick for using the 1.1V internal voltage reference to measure (thus calibrate) the supply voltage. It works, but not without caveats - so although QI, I’m afraid the net result may not be much of an improvement! As always, <a href="https://github.com/tardate/LittleArduinoProjects/tree/master/playground/VoltageSelfMeasurement">all notes, schematics and code are in the Little Electronics &amp; Arduino Projects repo on GitHub</a> <a href="https://github.com/tardate/LittleArduinoProjects/tree/master/playground/VoltageSelfMeasurement"><img src="http://leap.tardate.com/playground/VoltageSelfMeasurement/assets/VoltageSelfMeasurement_build.jpg" alt="hero_image" /></a></p> http://blog.tardate.com/2017/08/leap333-measure-thy-own-voltage.html Wed Aug 16 2017 09:15:53 GMT-0400 (EDT) ODA X6-2M – How to create your own ACFS file system https://technology.amis.nl/2017/08/14/oda-x6-2m-how-to-create-your-own-acfs-file-system/ <p>In this post I will explain how to create your own ACFS file system (on the command line) that you can use to (temporarily) store data.</p> <p>So you have this brand new ODA X6-2M and need to create or migrate some databases to it. Thus you need space to store data to import into the new databases you will create.  Or for some other reason. The ODA X6-2M comes with lots of space in the form of (at least) two 3.2 TB NVMe disks. But those have been formatted to ASM disks when you executed the odacli create-appliance command, or when you used the GUI to deploy the ODA.</p> <p>If you opted for “External Backups” most of the disk space will have been allocated to the +DATA ASM diskgroup. Or in the +RECO diskgroup.</p> <p>Thus you need to decide which diskgroup you will use to create an ACFS file system on. Since we have 80% of space allocated to +DATA I decided to use some of that.</p> <p>Logon to your ODA as root and make a mount point that you will use:</p> <pre style="padding: 1em; border: 1px solid #dddddd; color: #000000; text-transform: none; line-height: 1.3em; text-indent: 0px; letter-spacing: normal; font-family: monospace, courier; font-size: 14px; font-style: normal; font-weight: normal; word-spacing: 0px; white-space: pre-wrap; orphans: 2; widows: 2; background-color: #f9f9f9; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">as root: mkdir /migration</pre> <p>Then su to user grid and set the ASM environment:</p> <pre style="padding: 1em; border: 1px solid #dddddd; color: #000000; text-transform: none; line-height: 1.3em; text-indent: 0px; letter-spacing: normal; font-family: monospace, courier; font-size: 14px; font-style: normal; font-weight: normal; word-spacing: 0px; white-space: pre-wrap; orphans: 2; widows: 2; background-color: #f9f9f9; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">su - grid . oraenv [+ASM1] &lt;press enter&gt;</pre> <p>The command below will use asmca to create a volume called migration on the ASM DiskGroup +DATA with initial allocation of 50 GB.</p> <pre style="padding: 1em; border: 1px solid #dddddd; color: #000000; text-transform: none; line-height: 1.3em; text-indent: 0px; letter-spacing: normal; font-family: monospace, courier; font-size: 14px; font-style: normal; font-weight: normal; word-spacing: 0px; white-space: pre-wrap; orphans: 2; widows: 2; background-color: #f9f9f9; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">asmca -silent -createVolume -volumeName migration -volumeDiskGroup DATA -volumeSizeGB 50</pre> <p>Then you need to find the name of the volume you created in order to create an ACFS file system on it:</p> <pre style="padding: 1em; border: 1px solid #dddddd; color: #000000; text-transform: none; line-height: 1.3em; text-indent: 0px; letter-spacing: normal; font-family: monospace, courier; font-size: 14px; font-style: normal; font-weight: normal; word-spacing: 0px; white-space: pre-wrap; orphans: 2; widows: 2; background-color: #f9f9f9; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">asmcmd volinfo -G DATA migration | grep -oE '/dev/asm/.*'</pre> <p>Let&#8217;s assume that the above command returned:</p> <p><span style="background-color: #ffff00;">/dev/asm/migration-46</span></p> <p>Then you can use the following command to create an ACFS file system on that volume and mount it on /migration:</p> <pre style="padding: 1em; border: 1px solid #dddddd; color: #000000; text-transform: none; line-height: 1.3em; text-indent: 0px; letter-spacing: normal; font-family: monospace, courier; font-size: 14px; font-style: normal; font-weight: normal; word-spacing: 0px; white-space: pre-wrap; orphans: 2; widows: 2; background-color: #f9f9f9; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">asmca -silent -createACFS -acfsVolumeDevice <span style="background-color: #ffff00;">/dev/asm/migration-46</span> -acfsMountPoint /migration</pre> <p>Next you need to run the generated script as an privileged user (aka root), which is the message you get when executing the previous step:</p> <pre style="padding: 1em; border: 1px solid #dddddd; color: #000000; text-transform: none; line-height: 1.3em; text-indent: 0px; letter-spacing: normal; font-family: monospace, courier; font-size: 14px; font-style: normal; font-weight: normal; word-spacing: 0px; white-space: pre-wrap; orphans: 2; widows: 2; background-color: #f9f9f9; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">/u01/app/grid/cfgtoollogs/asmca/scripts/acfs_script.sh</pre> <p>To check the system for the newly created file system use:</p> <pre style="padding: 1em; border: 1px solid #dddddd; color: #000000; text-transform: none; line-height: 1.3em; text-indent: 0px; letter-spacing: normal; font-family: monospace, courier; font-size: 14px; font-style: normal; font-weight: normal; word-spacing: 0px; white-space: pre-wrap; orphans: 2; widows: 2; background-color: #f9f9f9; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">df -h /migration</pre> <p>To get the details of the created file system use:</p> <pre style="padding: 1em; border: 1px solid #dddddd; color: #000000; text-transform: none; line-height: 1.3em; text-indent: 0px; letter-spacing: normal; font-family: monospace, courier; font-size: 14px; font-style: normal; font-weight: normal; word-spacing: 0px; white-space: pre-wrap; orphans: 2; widows: 2; background-color: #f9f9f9; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">acfsutil info fs /migration</pre> <p>Or to just check the autoresize parameter, autoresizemax or autoresizeincrement use:</p> <pre style="padding: 1em; border: 1px solid #dddddd; color: #000000; text-transform: none; line-height: 1.3em; text-indent: 0px; letter-spacing: normal; font-family: monospace, courier; font-size: 14px; font-style: normal; font-weight: normal; word-spacing: 0px; white-space: pre-wrap; orphans: 2; widows: 2; background-color: #f9f9f9; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">/sbin/acfsutil info fs -o autoresize /migration /sbin/acfsutil info fs -o autoresizemax /migration /sbin/acfsutil info fs -o autoresizeincrement /migration</pre> <p>To set the autoresize on with an increment of 10GB:</p> <pre style="padding: 1em; border: 1px solid #dddddd; color: #000000; text-transform: none; line-height: 1.3em; text-indent: 0px; letter-spacing: normal; font-family: monospace, courier; font-size: 14px; font-style: normal; font-weight: normal; word-spacing: 0px; white-space: pre-wrap; orphans: 2; widows: 2; background-color: #f9f9f9; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">/sbin/acfsutil size -a 10G /migration</pre> <p>And to verify that it worked as expected:</p> <pre style="padding: 1em; border: 1px solid #dddddd; color: #000000; text-transform: none; line-height: 1.3em; text-indent: 0px; letter-spacing: normal; font-family: monospace, courier; font-size: 14px; font-style: normal; font-weight: normal; word-spacing: 0px; white-space: pre-wrap; orphans: 2; widows: 2; background-color: #f9f9f9; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">acfsutil info fs /migration acfsutil info fs -o autoresize /migration</pre> <p>To use the file system as the oracle user you might want to set the permissions and ownership:</p> <pre style="padding: 1em; border: 1px solid #dddddd; color: #000000; text-transform: none; line-height: 1.3em; text-indent: 0px; letter-spacing: normal; font-family: monospace, courier; font-size: 14px; font-style: normal; font-weight: normal; word-spacing: 0px; white-space: pre-wrap; orphans: 2; widows: 2; background-color: #f9f9f9; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">ls -sla /migration chown oracle:oinstall /migration chmod 775 /migration ls -sla /migration</pre> <p>And you are good to go!</p> <p>Of course you can also use the GUI to do this, then just start asmca as the grid user without the parameters and follow similar steps but then in the GUI.</p> <p>HTH &#8211; Patrick</p> <p>The post <a rel="nofollow" href="https://technology.amis.nl/2017/08/14/oda-x6-2m-how-to-create-your-own-acfs-file-system/">ODA X6-2M &#8211; How to create your own ACFS file system</a> appeared first on <a rel="nofollow" href="https://technology.amis.nl">AMIS Oracle and Java Blog</a>.</p> Patrick Roozen https://technology.amis.nl/?p=45762 Mon Aug 14 2017 16:12:38 GMT-0400 (EDT) Join Elimination Bug https://jonathanlewis.wordpress.com/2017/08/14/join-elimination-bug/ <p>A few years ago a bug relating to join elimination showed up in <a href="https://jonathanlewis.wordpress.com/2012/11/06/learning/#comment-52088"><em><strong>a comment to a post</strong></em></a> I&#8217;d done about the need to keep on testing and learining. The bug was visible in version 11.2.0.2 and, with a script to replay it, I&#8217;d found that it had disappeared by 11.2.0.4.</p> <p>Today I had a reason to rediscover the script, and decided to test it against 12.2.0.1 &#8211; and found that the bug was still present.</p> <p>Here&#8217;s the model:</p> <pre class="brush: plain; title: ; notranslate"> rem Script: join_eliminate_bug_2.sql rem Author: Jonathan Lewis rem Dated: Dec 2012 drop table child purge; drop table parent purge; create table parent ( id number(4), name varchar2(10), constraint par_pk primary key (id) deferrable initially immediate ) ; create table child( id_p number(4) constraint chi_fk_par references parent, id number(4), name varchar2(10), constraint chi_pk primary key (id_p, id) ) ; insert into parent values (1,'Smith'); insert into parent values (2,'Jones'); insert into child values(1,1,'Simon'); insert into child values(1,2,'Sally'); insert into child values(2,1,'Jack'); insert into child values(2,2,'Jill'); commit; begin dbms_stats.gather_table_stats(user,'child'); dbms_stats.gather_table_stats(user,'parent'); end; / set serveroutput off select chi.* from child chi, parent par where par.id = chi.id_p ; select * from table(dbms_xplan.display_cursor); </pre> <p>The setup is just to show you the correct results with join elimination taking place. Here&#8217;s the output from the query and the actual execution plan:</p> <pre class="brush: plain; title: ; notranslate"> ID_P ID NAME ---------- ---------- ------------ 1 1 Simon 1 2 Sally 2 1 Jack 2 2 Jill 4 rows selected. PLAN_TABLE_OUTPUT ------------------------------------- SQL_ID 1whubydgj8w0s, child number 0 ------------------------------------- select chi.* from child chi, parent par where par.id = chi.id_p Plan hash value: 2406669797 ----------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost | ----------------------------------------------------------- | 0 | SELECT STATEMENT | | | | 11 | | 1 | TABLE ACCESS FULL| CHILD | 4 | 48 | 11 | ----------------------------------------------------------- </pre> <p>On a single column join, with referential integrity in place, and no columns other than the primary key involved, the optimizer eliminates table <em><strong>parent</strong> </em>from the query. But if I now defer the primary key constraint on <em><strong>parent</strong> </em>and duplicate every row (which ought to duplicate the query result), watch what happens with the query:</p> <pre class="brush: plain; title: ; notranslate"> set constraint par_pk deferred; insert into parent (id,name) values (1,'Smith'); insert into parent (id,name) values (2,'Jones'); alter system flush shared_pool; select chi.* from child chi, parent par where par.id = chi.id_p ; select * from table(dbms_xplan.display_cursor); ID_P ID NAME ---------- ---------- ------------ 1 1 Simon 1 2 Sally 2 1 Jack 2 2 Jill 4 rows selected. PLAN_TABLE_OUTPUT ------------------------------------- SQL_ID 1whubydgj8w0s, child number 0 ------------------------------------- select chi.* from child chi, parent par where par.id = chi.id_p Plan hash value: 2406669797 ----------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost | ----------------------------------------------------------- | 0 | SELECT STATEMENT | | | | 11 | | 1 | TABLE ACCESS FULL| CHILD | 4 | 48 | 11 | ----------------------------------------------------------- </pre> <p>I get the same plan, so I get the same results &#8211; and notice that I flushed the shared pool before repeating the query so I haven&#8217;t fooled Oracle into reusing the wrong plan by accident &#8211; it&#8217;s a whole new freshly optimized plan.</p> <p>Just to show what ought to happen here&#8217;s the last bit of the test case:</p> <pre class="brush: plain; title: ; notranslate"> select /*+ no_eliminate_join(@sel$1 par@sel$1) */ chi.* from child chi, parent par where par.id = chi.id_p ; select * from table(dbms_xplan.display_cursor); ID_P ID NAME ---------- ---------- ------------ 1 1 Simon 1 2 Sally 1 1 Simon 1 2 Sally 2 1 Jack 2 2 Jill 2 1 Jack 2 2 Jill 8 rows selected. PLAN_TABLE_OUTPUT ------------------------------------- SQL_ID 5p8sp7k8b0fgq, child number 0 ------------------------------------- select /*+ no_eliminate_join(@sel$1 par@sel$1) */ chi.* from child chi, parent par where par.id = chi.id_p Plan hash value: 65982890 ----------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost | ----------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost | ----------------------------------------------------------------------- | 0 | SELECT STATEMENT | | | | 5 | | 1 | NESTED LOOPS | | 4 | 60 | 5 | | 2 | NESTED LOOPS | | 4 | 60 | 5 | | 3 | INDEX FULL SCAN | PAR_PK | 2 | 6 | 1 | |* 4 | INDEX RANGE SCAN | CHI_PK | 2 | | 1 | | 5 | TABLE ACCESS BY INDEX ROWID| CHILD | 2 | 24 | 2 | ----------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 4 - access(&quot;PAR&quot;.&quot;ID&quot;=&quot;CHI&quot;.&quot;ID_P&quot;) </pre> <p>I ran this test on 11.2.0.4 &#8211; and then repeated it on 12.2.0.1: the bug is still present (although I thought I&#8217;d seen a MoS note saying it had been fixed in 12.1).</p> <p>It&#8217;s always a little dangerous playing around with deferrable constraints &#8211; my view is that you should keep the interval of deferment as short as possible and don&#8217;t try to use it for doing anything other than correcting known data errors. At present if you have code that defers constraints and runs non-trivial queries afterwards you might want that code to start with an <em>&#8220;alter session&#8221;</em> to set the hidden parameter <em><strong>_optimizer_join_elimination_enabled</strong></em> to false (after checking with Oracle support, of course).</p><br /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonathanlewis.wordpress.com/12394/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonathanlewis.wordpress.com/12394/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=jonathanlewis.wordpress.com&#038;blog=491988&#038;post=12394&#038;subd=jonathanlewis&#038;ref=&#038;feed=1" width="1" height="1" /> Jonathan Lewis http://jonathanlewis.wordpress.com/?p=12394 Mon Aug 14 2017 06:59:09 GMT-0400 (EDT) Amazon Web Services (AWS) : That’s Customer Service! http://feedproxy.google.com/~r/TheOracleBaseBlog/~3/8wjyRchyu7Y/ <p><a href="https://aws.amazon.com/"><img class="alignleft wp-image-5980" src="https://oracle-base.com/blog/wp-content/uploads/2016/04/AWS.png" alt="" width="150" height="150" /></a>If you were reading my Twitter stream about 11 days ago you will have seen me tweet the following message.</p> <blockquote><p>That feeling when your <a class="twitter-hashtag pretty-link js-nav" dir="ltr" href="https://twitter.com/hashtag/AWS?src=hash" data-query-source="hashtag_click"><s>#</s><b>AWS</b></a> reserved instance ran out and you didn&#8217;t realise. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p></blockquote> <p>The story was I logged into <a href="https://aws.amazon.com/">AWS</a> and noticed the reserved instance for my website had expired about a month and a half before. For those that don&#8217;t know, buying reserved instances reduces your compute costs because you are committing to some resource usage over an extended period of time. There are various combinations of time, up-front payment, instance type and region that save you different amounts of cash&#8230; Once I noticed it had expired I bought a new reserved instance and thought no more of it.</p> <p>Fast forward to this weekend and I checked my &#8220;EC2 Reserved Instance Utilization Report&#8221;, to make sure my actual instance was using my reserved instance allocation and I was not getting overcharged. The default screen suggested that I wasn&#8217;t using my reserved instance, which left me kind-of vexed. I checked the settings and noticed the reserved instance had been bought at &#8220;Region&#8221; level, rather than for my &#8220;Availability Zone&#8221;, which is &#8220;EU (Ireland)&#8221;. I reset it to my availability zone and decided to investigate&#8230;</p> <p>What I noticed was visiting the EC2 reports was flipping my region settings from &#8220;EU (Ireland)&#8221; to &#8220;Global&#8221;. When I next visited any EC2 screen my region was flipped from &#8220;Global&#8221; to &#8220;US East (N. Virginia)&#8221;.</p> <p>I reported this to AWS and got a message back suggesting this was impossible. I recorded a video of it and sent that. I also reached out on Twitter and it seems I&#8217;m not the only person able to reproduce this bug. After several more interactions with support, it seemed this was the only &#8220;Global&#8221; service that was having this issue. When I switched to IAM or S3 and back to EC2 I remained in the proper region&#8230;</p> <p>At this point I was feeling a little miffed that I had lost out on 9 days of reserved instance pricing, so I asked for the difference to be refunded. I accepted the 40+ days where I had no reserved instance were my fault&#8230; I also made some suggestions about reserved instance notifications and proper buy-the-same-again functionality, that would really help in this situation.</p> <p>After a few minutes I got a little paranoid and though I ought to double-check that my reserved instance wasn&#8217;t being used, so I had a little play around with reporting and noticed the default report (a summary) was not showing it, but if I flipped to a report with finer granularity I could see the reserved instance was being used, which in itself seemed a little odd. I wrote back to support and asked them to ignore my request for the 9 day refund as the reserved instance was being used. As far as I was concerned, the situation was over now as I had not lost out on any money due to this interface bug.</p> <p>A little while later I got a message from support confirming my reserved instance was indeed being used, so I had not lost out over those 9 days, but they also refunded the difference between the reserved instance pricing and the full price I paid for the month and a half where I had no reserved instance! Wow! I really didn&#8217;t expect that!</p> <p>In financial terms, the refund is nothing to Amazon, or me for that matter, but that sort of gesture is fantastic from a customer service perspective. I instantly switched from being a little annoyed by the whole situation to wanting Amazon to marry my daughter (<a href="https://helifromfinland.blog/">Heli</a>). <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>Before last year&#8217;s Oracle OpenWorld I wrote a post called &#8220;<a href="/blog/2016/09/17/oracle-tech-company-or-service-company/">Oracle : Tech Company or Service Company?</a>&#8220;, where I discussed what I think Oracle need to do to compete with the other cloud providers. I can&#8217;t imagine Oracle resolving an incident like this so quickly, at the weekend, which resulted in giving me some money I probably didn&#8217;t deserve. I hope someone from Oracle reads this post and registers the fact this is what you are competing with!</p> <p>Cheers</p> <p>Tim&#8230;</p> <hr style="border-top:black solid 1px" /><a href="https://oracle-base.com/blog/2017/08/14/amazon-web-services-aws-thats-customer-service/">Amazon Web Services (AWS) : That&#8217;s Customer Service!</a> was first posted on August 14, 2017 at 11:13 am.<br />©2012 "<a href="http://www.oracle-base.com/blog">The ORACLE-BASE Blog</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.<br /><img src="http://feeds.feedburner.com/~r/TheOracleBaseBlog/~4/8wjyRchyu7Y" height="1" width="1" alt=""/> Tim... https://oracle-base.com/blog/?p=7473 Mon Aug 14 2017 06:13:33 GMT-0400 (EDT) Goodbye Oracle Corporation (Modern Love) https://richardfoote.wordpress.com/2017/08/14/goodbye-oracle-modern-love/ &#160; It’s with a mixture of excitement, trepidation and a touch of sorrow that I today handed in my resignation after 6 years at Oracle Corporation. My plans at this stage are to take a bit of time-off initially, before going back to providing Oracle Database consulting and training services as I’ve done in the [&#8230;]<img alt="" border="0" src="https://pixel.wp.com/b.gif?host=richardfoote.wordpress.com&#038;blog=2301564&#038;post=4995&#038;subd=richardfoote&#038;ref=&#038;feed=1" width="1" height="1" /> Richard Foote http://richardfoote.wordpress.com/?p=4995 Mon Aug 14 2017 03:39:04 GMT-0400 (EDT) LEAP#332 RC Phase Shift Oscillator http://blog.tardate.com/2017/08/leap332-rc-phase-shift-oscillator.html <p>Three RC high-pass filter poles add more than 180˚ phase shift on top of the 180˚ contributed by a class A BJT inverting amplifier with enough gain to sustain positive feeback. And that’s all you need to make an oscillator. As always, <a href="https://github.com/tardate/LittleArduinoProjects/tree/master/Electronics101/Oscillators/RCPhaseShiftBJT">all notes, schematics and code are in the Little Electronics &amp; Arduino Projects repo on GitHub</a> <a href="https://github.com/tardate/LittleArduinoProjects/tree/master/Electronics101/Oscillators/RCPhaseShiftBJT"><img src="http://leap.tardate.com/Electronics101/Oscillators/RCPhaseShiftBJT/assets/RCPhaseShiftBJT_build.jpg" alt="hero_image" /></a></p> http://blog.tardate.com/2017/08/leap332-rc-phase-shift-oscillator.html Sat Aug 12 2017 12:56:48 GMT-0400 (EDT) Adding a Cross Instance, Cross Restarts and Cross Application Cache to Node Applications on Oracle Application Container Cloud https://technology.amis.nl/2017/08/12/adding-a-cross-instance-cross-restarts-and-cross-application-cache-to-node-applications-on-oracle-application-container-cloud/ <p>In a previous post I described how to do Continuous Integration &amp; Delivery from Oracle Developer Cloud to Oracle Application Container Cloud on simple Node applications: <a href="https://technology.amis.nl/2017/08/11/automating-build-and-deployment-of-node-application-in-oracle-developer-cloud-to-application-container-cloud/" target="_blank" rel="noopener">Automating Build and Deployment of Node application in Oracle Developer Cloud to Application Container Cloud</a>. In this post, I am going to extend that very simple application with the functionality to count requests. With every HTTP request to the application, a counter is incremented and the current counter value is returned in the response.</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-11.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-11.png?resize=494%2C102&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>The initial implementation is a very naïve one: the Node application contains a global variable that is increased for each request that is handled. This is naïve because:</p> <ul> <li>multiple instances are running concurrently and each is keeping its own count; because of load balancing, the subsequent requests are handled by various instances and the responses will show a somewhat irregular request counter pattern; the total number of requests is not known: each instance as a subtotal for that instance</li> <li>when the application is restarted &#8211; or even a single instance is restarted or added &#8211; the request counter for each instance involved is reset</li> </ul> <p>Additionally, the request count value is not available outside the Node application and it can only be retrieved by calling the application -which in turn increases the count.</p> <p>A much better implementation would be one that uses a cache &#8211; that is shared by the application instances and that survives application (instance) restarts. This would also potentially make the request count value available to other microservices that can access the same cache &#8211; if we allow that to happen.</p> <p>This post demonstrates how an Application Cache can be set up on Application Container Cloud Service and how it can be leveraged from a Node application. It shows that the request counter will be shared across instances and survives redeployments and restarts.</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-12.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-12.png?resize=702%2C309&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Note: there is still the small matter of race conditions that are not addressed in this simple example because read,update and write are not performed as atomic operation and no locking has been implemented.</p> <p>The steps are:</p> <ul> <li>Add (naïve) request counting capability to <em>greeting</em> microservice</li> <li>Demonstrate shortcomings upon multiple requests (handled by multiple instances) and by instance restart</li> <li>Implement Application Cache</li> <li>Add Application Cache service binding to ACCS Deployment profile for <em>greeting</em> in Developer Cloud Service</li> <li>Utilize Application Cache in <em>greeting</em> microservice</li> <li>Redeploy <em>greeting </em>microservice and demonstrate that request counter is shared and preserved</li> </ul> <p>Sources for this article are in GitHub: <a href="https://github.com/lucasjellema/greeting">https://github.com/lucasjellema/greeting</a> .</p> <h3>Add (naïve) request counting capability to <em>greeting</em> microservice</h3> <p>The very simple HTTP request handler is extended with a global variable <em>requestCounter </em>that is displayed and incremented for each request:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-13.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-13.png?resize=702%2C321&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>It’s not hard to demonstrate shortcomings upon multiple requests (handled by multiple instances) :</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-14.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-14.png?resize=578%2C313&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Here we see how subsequent requests are handled (apparently) by two different instances that each have their own, independently increasing count.</p> <p>After application restart, the count is back to the beginning.</p> <h3>Implement Application Cache</h3> <p>To configure an Application Cache we need to work from the Oracle Application Container Cloud Service console.</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-15.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-15.png?resize=396%2C484&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-16.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-16.png?resize=632%2C318&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Specify the details &#8211; the name and possibly the sizing:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-17.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; marginight: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-17.png?resize=623%2C337&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-18.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-18.png?resize=612%2C338&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Press Create and the cache will be created:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-19.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-19.png?resize=621%2C294&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>I got notified about its completion by email:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-20.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-20.png?resize=612%2C366&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>&nbsp;</p> <h3>Add Application Cache service binding to ACCS Deployment profile for <em>greeting</em> in Developer Cloud Service</h3> <p>In order to be able to access the cache from within an application on ACCS, the application needs a service binding to the Cache service. This can be configured in the console (manually) as well as via the REST API, psm cli and the deployment descriptor in the Deployment configuration in Developer Cloud Service.</p> <p>Manual configuration through the web ui looks like this:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-21.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-21.png?resize=376%2C509&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>or though a service binding:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-22.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-22.png?resize=502%2C330&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-23.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-23.png?resize=495%2C342&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>and applying the changes:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-24.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-24.png?resize=499%2C303&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-25.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-25.png?resize=468%2C222&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>I can then utilize the psm command line interface to inspect the JSON definition of the application instance on ACCS and so learn how to edit the deployment.json file with the service binding for the application cache. First setup psm:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-26.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-26.png?resize=425%2C395&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>And inspect the greeting application:</p> <p>psm accs app -n greeting -o verbose -of json</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-27.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-27.png?resize=571%2C382&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>to learn about the JSON definition for the service binding:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-28.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-28.png?resize=566%2C510&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Now I know how to update the deployment descriptor in the Deployment configuration in Developer Cloud Service:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/SNAGHTML13e985e.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="SNAGHTML13e985e" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/SNAGHTML13e985e_thumb.png?resize=702%2C403&#038;ssl=1" alt="SNAGHTML13e985e" border="0" data-recalc-dims="1" /></a></p> <p>The next time this deployment is performed, the service binding to the application cache is configured.</p> <p><span style="text-decoration: line-through;">Note: the credentials for accessing the application cache have to be provided and yes, horrible as it sounds and is, the password is in clear text!</span></p> <p>It seems that the credentials are not required. The value of password is now BogusPassword &#8211; which is not the true value of my password &#8211; and still accessing the cache works fine. Presumably the fact that the application is running inside the right network domain qualifies it for accessing the cache.</p> <p>The Service Binding makes the following environment variable available to the application &#8211; populated at runtime by the ACCS platform:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-29.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-29.png?resize=702%2C481&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <h3>Utilize Application Cache in <em>greeting</em> microservice</h3> <p>The simplest way to make use of the service binding’s environment variable is demonstrated here (note that this does not yet actually use the cache):</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-30.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-30.png?resize=702%2C204&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>and the effect on requests:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-31.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-31.png?resize=702%2C26&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Now to actually interact with the cache &#8211; through REST calls as explained here: <a title="http://www.oracle.com/webfolder/technetwork/tutorials/obe/cloud/apaas/node/node-accs-caching-basic/node-accs-caching-basic.html" href="http://www.oracle.com/webfolder/technetwork/tutorials/obe/cloud/apaas/node/node-accs-caching-basic/node-accs-caching-basic.html">http://www.oracle.com/webfolder/technetwork/tutorials/obe/cloud/apaas/node/node-accs-caching-basic/node-accs-caching-basic.html</a> &#8211; we will use a node module node-rest-client. This module is added to the application using</p> <p>npm install node-rest-client &#8211;save</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-32.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-32.png?resize=390%2C186&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Note: this instruction will update package.json and download the module code. Only the changed package.json is committed to the git repository. When the application is next built in Developer Cloud Service, it will perform <em>npm install </em>prior to zipping the Node application into a single archive. That action of <em>npm install</em> ensures that the sources of node-rest-client are downloaded and will get added to the greeting.zip file that is deployed to ACCS.</p> <p>Using this module, the app.js file is extended to read from and write to the application cache. See here the changed code (also in GitHub <a title="https://github.com/lucasjellema/greeting/blob/master/app.js" href="https://github.com/lucasjellema/greeting/blob/master/app.js">https://github.com/lucasjellema/greeting/blob/master/app.js</a>):</p> <p><pre class="brush: jscript; title: ; notranslate"> var http = require('http'); var Client = require(&quot;node-rest-client&quot;).Client; var version = '1.2.3'; // Read Environment Parameters var port = Number(process.env.PORT || 8080); var greeting = process.env.GREETING || 'Hello World!'; var requestCounter = 0; var server = http.createServer(function (request, response) { getRequestCounter( function (value) { requestCounter = (value?value+1:requestCounter+1); // put new value in cache - but do not wait for a response console.log(&quot;write value to cache &quot;+requestCounter); writeRequestCounter(requestCounter); response.writeHead(200, {&quot;Content-Type&quot;: &quot;text/plain&quot;}); response.end( &quot;Version &quot;+version+&quot; says an unequivocal: &quot;+greeting + &quot;. Request counter: &quot;+ requestCounter +&quot;. \n&quot; ); }) }); server.listen(port); // functionality for cache interaction // for interaction with cache var CCSHOST = process.env.CACHING_INTERNAL_CACHE_URL; var baseCCSURL = 'http://' + CCSHOST + ':8080/ccs'; var cacheName = &quot;greetingCache&quot;; var client = new Client(); var keyString = &quot;requestCount&quot;; function getRequestCounter(callback) { client.get(baseCCSURL.concat('/').concat(cacheName).concat('/').concat(keyString), function(data, rawResponse){ var value; // If nothing there, return not found if(rawResponse.statusCode == 404){ console.log(&quot;nothing found in the cache&quot;); value = null; } else{ // Note: data is a Buffer object. console.log(&quot;value found in the cache &quot;+data.toString()); value = JSON.parse(data.toString()).requestCounter; } callback(value); } ); };//getRequestCounter function writeRequestCounter(requestCounter) { var args = { data: { &quot;requestCounter&quot;: requestCounter}, headers: { &quot;Content-Type&quot; : &quot;application/json&quot; } }; client.put(baseCCSURL.concat('/').concat(cacheName).concat('/').concat(keyString), args, function (data, rawResponse) { // Proper response is 204, no content. if(rawResponse.statusCode == 204){ console.log(&quot;Successfully put in cache &quot;+JSON.stringify(data)) } else{ console.error(&quot;Error in PUT &quot;+rawResponse); console.error('writeRequestCounter returned error '.concat(rawResponse.statusCode.toString())); } } ); }// writeRequestCounter </pre> </p> <h3>Redeploy <em>greeting </em>microservice and demonstrate that request counter is shared and preserved</h3> <p>When we make multiple invocations to the greeting service, we see a consistently increasing series of count values:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-33.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-33.png?resize=451%2C181&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Even when the application is restarted or redeployed, the request count is preserved and when the application becomes available again, we simply resume counting.</p> <p>The logs from the two ACCS application instances provide insight in what takes place &#8211; how load balancing makes these instances handle requests intermittently &#8211; and how they read each others’ results from the cache:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-34.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-34.png?resize=702%2C259&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>&nbsp;</p> <h3>Resources</h3> <p>Sources for this article are in GitHub: <a href="https://github.com/lucasjellema/greeting">https://github.com/lucasjellema/greeting</a> .</p> <p>Blog article by Mike Lehmann, announcing the Cache feature on ACCS: <a title="https://blogs.oracle.com/developers/caching-with-oracle-application-container-cloud" href="https://blogs.oracle.com/developers/caching-with-oracle-application-container-cloud">https://blogs.oracle.com/developers/caching-with-oracle-application-container-cloud</a></p> <p>Documentation on ACCS Caches: <a title="https://docs.oracle.com/en/cloud/paas/app-container-cloud/cache/getting-started-caches.html" href="https://docs.oracle.com/en/cloud/paas/app-container-cloud/cache/getting-started-caches.html">https://docs.oracle.com/en/cloud/paas/app-container-cloud/cache/getting-started-caches.html</a></p> <p>Tutorials on cache enabling various technology based applications on ACCS: <a title="https://docs.oracle.com/en/cloud/paas/app-container-cloud/create-sample-caching-applications.html" href="https://docs.oracle.com/en/cloud/paas/app-container-cloud/create-sample-caching-applications.html">https://docs.oracle.com/en/cloud/paas/app-container-cloud/create-sample-caching-applications.html</a></p> <p>Tutorial on Creating a Node.js Application Using the Caching REST API in Oracle Application Container Cloud Service <a title="http://www.oracle.com/webfolder/technetwork/tutorials/obe/cloud/apaas/node/node-accs-caching-basic/node-accs-caching-basic.html" href="http://www.oracle.com/webfolder/technetwork/tutorials/obe/cloud/apaas/node/node-accs-caching-basic/node-accs-caching-basic.html">http://www.oracle.com/webfolder/technetwork/tutorials/obe/cloud/apaas/node/node-accs-caching-basic/node-accs-caching-basic.html#section4</a></p> <p>Public API Docs for Cache Service &#8211; <a title="https://apicatalog.oraclecloud.com/ui/views/apicollection/oracle-public/cache-app/v1" href="https://apicatalog.oraclecloud.com/ui/views/apicollection/oracle-public/cache-app/v1">https://apicatalog.oraclecloud.com/ui/views/apicollection/oracle-public/cache-app/v1</a></p> <p>Using psm to retrieve deployment details of ACCS application: <a title="https://docs.oracle.com/en/cloud/paas/java-cloud/pscli/accs-app.html" href="https://docs.oracle.com/en/cloud/paas/java-cloud/pscli/accs-app.html">https://docs.oracle.com/en/cloud/paas/java-cloud/pscli/accs-app.html</a> (to find out how Application Cache reference is defined)</p> <p>The post <a rel="nofollow" href="https://technology.amis.nl/2017/08/12/adding-a-cross-instance-cross-restarts-and-cross-application-cache-to-node-applications-on-oracle-application-container-cloud/">Adding a Cross Instance, Cross Restarts and Cross Application Cache to Node Applications on Oracle Application Container Cloud</a> appeared first on <a rel="nofollow" href="https://technology.amis.nl">AMIS Oracle and Java Blog</a>.</p> Lucas Jellema https://technology.amis.nl/?p=45755 Sat Aug 12 2017 07:00:33 GMT-0400 (EDT) Database Smart Flash Cache on which OS (OL5, OL6, OL7)? http://feedproxy.google.com/~r/TheOracleBaseBlog/~3/JHQpWPlI5C4/ <p><img class="alignleft wp-image-5840" src="https://oracle-base.com/blog/wp-content/uploads/2016/02/confused-panda-303949_640.png" alt="" width="150" height="156" />I got a DM from someone a couple of days ago asking me to try the <a href="/articles/12c/database-smart-flash-cache-12cr1">Database Smart Flash Cache</a> (DSFC) feature on a few combinations of DB version and OS version.</p> <p>You are probably thinking, why bother? Both Oracle 12.1 and Oracle 12.2 are supported on a variety of Oracle Linux versions, so it works on all of them right? Wrong&#8230;</p> <ul> <li>Oracle 12.1 : DSFC works on OL5 and OL6, but it doesn&#8217;t work on OL7.</li> <li>Oracle 12.2 : DSFC works on OL6 and OL7. I haven&#8217;t tried it on OL5. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></li> </ul> <p>So if you want to use this feature in Oracle 12.1 on OL7 you are out of luck. When you start the instance you will see this.</p> <pre>$ sqlplus / as sysdba SQL*Plus: Release 12.1.0.2.0 Production on Fri Aug 11 22:43:32 2017 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to an idle instance. SQL&gt; startup ORA-00439: feature not enabled: Server Flash Cache SQL&gt;</pre> <p>If you check the alert log you will see this.</p> <pre>$ cat alert_cdb3.log Fri Aug 11 22:43:37 2017 Starting ORACLE instance (normal) (OS id: 4842) Fri Aug 11 22:43:37 2017 CLI notifier numLatches:3 maxDescs:519 Fri Aug 11 22:43:37 2017 ********************************************************************** Fri Aug 11 22:43:37 2017 Dump of system resources acquired for SHARED GLOBAL AREA (SGA) Fri Aug 11 22:43:37 2017 Domain name: user.slice Fri Aug 11 22:43:37 2017 Per process system memlock (soft) limit = 128G Fri Aug 11 22:43:37 2017 Expected per process system memlock (soft) limit to lock SHARED GLOBAL AREA (SGA) into memory: 1536M Fri Aug 11 22:43:37 2017 Available system pagesizes: 4K, 2048K Fri Aug 11 22:43:37 2017 Supported system pagesize(s): Fri Aug 11 22:43:37 2017 PAGESIZE AVAILABLE_PAGES EXPECTED_PAGES ALLOCATED_PAGES ERROR(s) Fri Aug 11 22:43:37 2017 4K Configured 393219 393219 NONE Fri Aug 11 22:43:37 2017 Reason for not supporting certain system pagesizes: Fri Aug 11 22:43:37 2017 2048K - Dynamic allocate and free memory regions Fri Aug 11 22:43:37 2017 ********************************************************************** LICENSE_MAX_SESSION = 0 LICENSE_SESSIONS_WARNING = 0 Initial number of CPU is 2 Number of processor cores in the system is 2 Number of processor sockets in the system is 1 Picked latch-free SCN scheme 3 db_flash_cache_file and db_flash_cache_size is not supported on this platform $</pre> <p>This failure is consistent across multiple OL7 versions, including 7.4. It is also consistent across 12.1 versions, up to and including the July 2017 updates.</p> <p>Well that&#8217;s annoying. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>Cheers</p> <p>Tim&#8230;</p> <p>PS. I am aware there is a hack to make this work on other Oracle Linux versions, and even on other Linux distributions. My point is this shouldn&#8217;t be necessary if they just fixed the offending greps which are visible in the strace during startup. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p><strong>Update</strong>: <a href="https://kevinclosson.net/">Kevin Closson</a> wrote in the comments, &#8220;OEL7 support has been added after bug 19504946, which went into to 12.1.0.2.2dbbp but not the initial release nor PSU&#8221;.</p> <hr style="border-top:black solid 1px" /><a href="https://oracle-base.com/blog/2017/08/11/database-smart-flash-cache-on-which-os-ol5-ol6-ol7/">Database Smart Flash Cache on which OS (OL5, OL6, OL7)?</a> was first posted on August 11, 2017 at 11:05 pm.<br />©2012 "<a href="http://www.oracle-base.com/blog">The ORACLE-BASE Blog</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.<br /><img src="http://feeds.feedburner.com/~r/TheOracleBaseBlog/~4/JHQpWPlI5C4" height="1" width="1" alt=""/> Tim... https://oracle-base.com/blog/?p=7467 Fri Aug 11 2017 18:05:27 GMT-0400 (EDT) DEMYTHIFYING ORACLE DATABASE APPLIANCE http://noriegaaoracleexpert.blogspot.com/2017/08/demythifying-oracle-database-appliance.html <div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><span style="color: red; font-size: x-large;">EXTREME PERFORMANCE WITH&nbsp;</span></div><div class="separator" style="clear: both; text-align: center;"><span style="color: red; font-size: x-large;">ORACLE DATABASE APPLIANCE: </span><span style="color: red; font-size: large;">PERFORMANCE, RELIABILITY AND HIGH AVAILABILITY <br />ON THE CLOUD <br />AND <br />IN THE DATA CENTER</span></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-VsGl2ZRi3fU/WX28Bw2dceI/AAAAAAAAO5g/lOTVzv6MXxAEuRqyjaQ_zlsR5VQKbUxigCLcBGAs/s1600/ODAPSTRScreenShot2017-07-28%2Bat%2B8.30.14%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1043" data-original-width="1600" height="416" src="https://3.bp.blogspot.com/-VsGl2ZRi3fU/WX28Bw2dceI/AAAAAAAAO5g/lOTVzv6MXxAEuRqyjaQ_zlsR5VQKbUxigCLcBGAs/s640/ODAPSTRScreenShot2017-07-28%2Bat%2B8.30.14%2BPM.png" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="MsoNormal"><div style="text-align: center;"><b style="mso-bidi-font-weight: normal;"><span style="color: red; font-size: 18.0pt;">EXTREME PERFORMANCE WITH <br />ORACLE DATABASE APPLIANCE (ODA)</span></b></div></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt;"><div class="MsoNormal"><br /></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt;"><span style="color: #f3f3f3;">Whether your company is rather small or you are part of a major corporation, Oracle Database Appliance (ODA) can accelerate, enhance, and improve your database services at any desirable level. ODA supports RAC, RAC OneNode and Enterprise Standalone databases. Having ODA means that DBAs can work faster, more efficiently and providing the agility that developers and software engineering need in the workplace for every major project to be on time. Database services leads and DBAs can attain further efficiency based on the key ODA framework, involving simplicity, pre-built optimization and affordability at any SLA, as well as providing the ambiance required to create the right productivity environment whether being used in a remote office or branch office, for development or testing, or simply as a solution in a box, ODA surpasses the dreamt expectations on performance, reliability and availability at all times. &nbsp;It further provides capabilities for full-stack hardware refresh, database consolidation, and backup and recovery. Besides, ODA supports other Oracle technologies such as Transparent Data Encryption (TDE), in integration with BI tools such as Hyperion and applications deployment such as PeopleSoft and Oracle E-Business Suite.</span></div><div class="MsoNormal"><div class="separator" style="clear: both; text-align: center;"><!--[if gte mso 9]><xml> <o:DocumentProperties> <o:Revision>0</o:Revision> <o:TotalTime>0</o:TotalTime> <o:Pages>1</o:Pages> <o:Words>4</o:Words> <o:Characters>26</o:Characters> <o:Company>ADN R & D</o:Company> <o:Lines>1</o:Lines> <o:Paragraphs>1</o:Paragraphs> <o:CharactersWithSpaces>29</o:CharactersWithSpaces> <o:Version>14.0</o:Version> </o:DocumentProperties> <o:OfficeDocumentSettings> <o:AllowPNG/> </o:OfficeDocumentSettings></xml><![endif]--> <!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves/> <w:TrackFormatting/> <w:PunctuationKerning/> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF/> <w:LidThemeOther>EN-US</w:LidThemeOther> <w:LidThemeAsian>JA</w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> <w:Compatibility> &l:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:SplitPgBreakAndParaMark/> <w:EnableOpenTypeKerning/> <w:DontFlipMirrorIndents/> <w:OverrideTableStyleHps/> <w:UseFELayout/> </w:Compatibility> <m:mathPr> <m:mathFont m:val="Cambria Math"/> <m:brkBin m:val="before"/> <m:brkBinSub m:val="--"/> <m:smallFrac m:val="off"/> <m:dispDef/> <m:lMargin m:val="0"/> <m:rMargin m:val="0"/> <m:defJc m:val="centerGroup"/> <m:wrapIndent m:val="1440"/> <m:intLim m:val="subSup"/> <m:naryLim m:val="undOvr"/> </m:mathPr></w:WordDocument></xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true" DefSemiHidden="true" DefQFormat="false" DefPriority="99" LatentStyleCount="276"> <w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Normal"/> <w:LsdException Locked="false" Priority="9" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="heading 1"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/> <w:LsdException Locked="false" Priority="39" Name="toc 1"/> <w:LsdException Locked="false" Priority="39" Name="toc 2"/> <w:LsdException Locked="false" Priority="39" Name="toc 3"/> <w:LsdException Locked="false" Priority="39" Name="toc 4"/> <w:LsdException Locked="false" Priority="39" Name="toc 5"/> <w:LsdException Locked="false" Priority="39" Name="toc 6"/> <w:LsdException Locked="false" Priority="39" Name="toc 7"/> <w:LsdException Locked="false" Priority="39" Name="toc 8"/> <w:LsdException Locked="false" Priority="39" Name="toc 9"/> <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/> <w:LsdException Locked="false" Priority="10" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Title"/> <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/> <w:LsdException Locked="false" Priority="11" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/> <w:LsdException Locked="false" Priority="22" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Strong"/> <w:LsdException Locked="false" Priority="20" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/> <w:LsdException Locked="false" Priority="59" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid"/> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/> <w:LsdException Locked="false" Priority="1" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 1"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 1"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 1"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/> <w:LsdException Locked="false" Priority="34" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/> <w:LsdException Locked="false" Priority="29" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Quote"/> <w:LsdException Locked="false" Priority="30" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 1"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 1"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 2"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 2"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 2"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 2"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 2"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 3"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 3"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 3"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 3"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 3"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 4"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 4"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 4"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 4"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 4"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 5"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 5"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 5"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 5"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 5"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 6"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 6"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 6"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 6"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 6"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/> <w:LsdException Locked="false" Priority="19" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/> <w:LsdException Locked="false" Priority="21" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/> <w:LsdException Locked="false" Priority="31" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/> <w:LsdException Locked="false" Priority="32" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/> <w:LsdException Locked="false" Priority="33" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Book Title"/> <w:LsdException Locked="false" Priority="37" Name="Bibliography"/> <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/> </w:LatentStyles></xml><![endif]--><style><!-- /* Font Definitions */ @font-face {font-family:"MS 明朝"; mso-font-charset:78; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:-536870145 1791491579 18 0 131231 0;} @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:0; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:-536870145 1107305727 0 0 415 0;} @font-face {font-family:Cambria; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:0; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:-536870145 1073743103 0 0 415 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:Cambria; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS 明朝"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; font-family:Cambria; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS 明朝"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} @page WordSection1 {size:8.5in 11.0in; margin:1.0in 1.25in 1.0in 1.25in; mso-header-margin:.5in; mso-footer-margin:.5in; mso-paper-source:0;} div.WordSection1 {page:WordSection1;} </style></div></div></div></div></div></div>--&gt; <!--[if gte mso 10]><style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin:0in; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:Cambria; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin;} </style><![endif]--> <!--StartFragment--> <!--EndFragment--><div class="MsoNormal"><b style="mso-bidi-font-weight: normal;"><span style="color: red; font-size: 16.0pt;">ODA ARCHITECTURAL ESSENTIALS<o:p></o:p></span></b></div><div class="MsoNormal"><b style="mso-bidi-font-weight: normal;"><span style="color: red; font-size: 16.0pt;"><br /></span></b></div><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-KJ16JsFwgiA/WY4lRlv9VAI/AAAAAAAAO8c/V3kOlW940YcZAY0IHaE6PFRR1hsvCt_OwCLcBGAs/s1600/Screen%2BShot%2B2017-08-11%2Bat%2B5.05.08%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="451" data-original-width="1003" height="286" src="https://3.bp.blogspot.com/-KJ16JsFwgiA/WY4lRlv9VAI/AAAAAAAAO8c/V3kOlW940YcZAY0IHaE6PFRR1hsvCt_OwCLcBGAs/s640/Screen%2BShot%2B2017-08-11%2Bat%2B5.05.08%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-Fs1c86gome8/WY4lRtZGV3I/AAAAAAAAO8Y/gvMcdAFMAUwzk9GR74UsnV789AuRidQhQCLcBGAs/s1600/Screen%2BShot%2B2017-08-11%2Bat%2B5.21.06%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="422" data-original-width="930" height="290" src="https://4.bp.blogspot.com/-Fs1c86gome8/WY4lRtZGV3I/AAAAAAAAO8Y/gvMcdAFMAUwzk9GR74UsnV789AuRidQhQCLcBGAs/s640/Screen%2BShot%2B2017-08-11%2Bat%2B5.21.06%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-J71QvYosfWU/WY4lRtMV16I/AAAAAAAAO8U/TxFduVI4YjQzG-k4quXQoVkwGeYDhd_zgCLcBGAs/s1600/Screen%2BShot%2B2017-08-11%2Bat%2B5.21.20%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="440" data-original-width="926" height="304" src="https://4.bp.blogspot.com/-J71QvYosfWU/WY4lRtMV16I/AAAAAAAAO8U/TxFduVI4YjQzG-k4quXQoVkwGeYDhd_zgCLcBGAs/s640/Screen%2BShot%2B2017-08-11%2Bat%2B5.21.20%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-sH9rRsKbBeI/WY4lSRvZXiI/AAAAAAAAO8g/wlhF0iT-teEKFyrI06IIjPBYJbpL_N0HQCLcBGAs/s1600/Screen%2BShot%2B2017-08-11%2Bat%2B5.23.33%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="480" data-original-width="945" height="324" src="https://3.bp.blogspot.com/-sH9rRsKbBeI/WY4lSRvZXiI/AAAAAAAAO8g/wlhF0iT-teEKFyrI06IIjPBYJbpL_N0HQCLcBGAs/s640/Screen%2BShot%2B2017-08-11%2Bat%2B5.23.33%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-h2t6EegzMJY/WY4lSYcFRJI/AAAAAAAAO8k/DINax1deO2sIFJtgVAS9yuHZ7pfwKH0QwCLcBGAs/s1600/Screen%2BShot%2B2017-08-11%2Bat%2B5.23.42%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="492" data-original-width="935" height="336" src="https://2.bp.blogspot.com/-h2t6EegzMJY/WY4lSYcFRJI/AAAAAAAAO8k/DINax1deO2sIFJtgVAS9yuHZ7pfwKH0QwCLcBGAs/s640/Screen%2BShot%2B2017-08-11%2Bat%2B5.23.42%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-A0-1PR0hOqI/WY4lS_qnyjI/AAAAAAAAO8o/Y-UM4a7kj2gcgj7fG9IbwhEMOSWPjlvuQCLcBGAs/s1600/Screen%2BShot%2B2017-08-11%2Bat%2B5.23.51%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="477" data-original-width="940" height="324" src="https://2.bp.blogspot.com/-A0-1PR0hOqI/WY4lS_qnyjI/AAAAAAAAO8o/Y-UM4a7kj2gcgj7fG9IbwhEMOSWPjlvuQCLcBGAs/s640/Screen%2BShot%2B2017-08-11%2Bat%2B5.23.51%2BPM.png" width="640" /></a></div><span style="color: #f3f3f3;"><br /></span><div class="MsoNormal" style="line-height: 22.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><span style="color: white; font-size: 16.0pt;">Storage </span><span style="color: white; font-size: 10.0pt;"><o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><span style="color: white; mso-bidi-font-family: Garamond; mso-themecolor: background1;">In principle, the Oracle Database Appliance uses twenty hard drives for storing user data. These disks are 600 GB SAS hard drives, allowing for a total of 12 TB of raw storage. They are hot-pluggable, front mounted, and are accessible to each of the two servers in the Oracle Database Appliance. </span><span style="color: white; mso-bidi-font-family: Times; mso-themecolor: background1;"><o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><span style="color: white; mso-bidi-font-family: Garamond; mso-themecolor: background1;">Likewise, the Oracle Database Appliance is engineered to tolerate hardware component failures. The onboard storage subsystem is designed for maximum availability. Whenever a server loses access to the disks, the other server will still have access. </span><span style="color: white; mso-bidi-font-family: Times; mso-themecolor: background1;"><o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><span style="color: white; mso-bidi-font-family: Garamond; mso-themecolor: background1;">When a new Oracle Database Appliance is configured for use, Oracle Automatic Storage Management (ASM) is utilized to create and manage the underlying tablespaces. The ASM +DATA and +RECO disk groups are created during the install of Oracle Database Appliance. When configuring the appliance, DBAs have the options of <i style="mso-bidi-font-style: normal;">“External Backups”</i> or <i style="mso-bidi-font-style: normal;">“Internal Backups”.</i><span style="mso-spacerun: yes;">&nbsp; </span>A +RECO tablespace will be larger if the <i style="mso-bidi-font-style: normal;">“Internal Backup”</i>option is selected during the corresponding installation process. <o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><br /></div><div class="MsoNormal" style="line-height: 22.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><span style="color: white; font-size: 18.0pt;">Performance Architecture </span><span style="color: white; font-size: 11.0pt;"><o:p></o:p></span></div><div class="MsoNormal" style="line-height: 18.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><span style="color: white; mso-bidi-font-family: Garamond; mso-themecolor: background1;">The testing for this white paper was performed on an Oracle Database Appliance X6-2 system surpasses the capabilities of the Oracle Database Appliance X4-2 System, which consists of two X86 servers, each with two 12-core Intel E5-2697 CPUs and 256GB of memory. The two nodes use direct attached storage that is comprised of twenty 900 GB, 10,000 rpm SAS hard disk drives and four 200 GB SAS solid state disks (SSDs). Thus the Oracle Database Appliance X4-2 provides a total of 512 GB of memory, 48 CPU cores, 18TB of raw HDD storage and 800GB of SSD storage. With the addition of the Expansion Storage Shelf, the available storage can be doubled. </span><span style="color: white; mso-bidi-font-family: Times; mso-themecolor: background1;"><o:p></o:p></span><br /><span style="color: white; mso-bidi-font-family: Garamond; mso-themecolor: background1;"><br /></span><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-j4iPLMCQnfY/WY--RmApj6I/AAAAAAAAO88/nc5a_UPupcMRrYcmdm0KiPXBJzKU90tTgCLcBGAs/s1600/1.benchmarkslide.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="574" data-original-width="1023" height="358" src="https://2.bp.blogspot.com/-j4iPLMCQnfY/WY--RmApj6I/AAAAAAAAO88/nc5a_UPupcMRrYcmdm0KiPXBJzKU90tTgCLcBGAs/s640/1.benchmarkslide.png" width="640" /></a></div><span style="color: white; mso-bidi-font-family: Garamond; mso-themecolor: background1;"><br /></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><span style="color: white; mso-bidi-font-family: Times; mso-themecolor: background1;">More specifically, the Oracle Database Appliance X6-2S and Oracle Database Appliance X6-2M hardware are engineered as single rack-mountable systems that provide the performance benefits associated with the latest generation Intel® Xeon® processors and NVM Express (NVMe) flash storage. Indeed, the Oracle Database Appliance X6-2S is powered by one 10-core Intel® Xeon® processor E5-2630 v4 and 128 GB of main memory, expandable to 384 GB. The Oracle Database Appliance X6-2M doubles the processor and memory resources by offering two 10-core Intel® Xeon® processors E5- 2630 v4 and 256 GB of main memory, expandable up to 768 GB. Both systems come configured with 6.4 TB of high-bandwidth NVM Express (NVMe) flash for database storage and offer the option to double the storage capacity to 12.8 TB of NVM Express (NVMe) flash. <o:p></o:p></span></div><div class="MsoNormal" style="line-height: 22.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><span style="color: white; font-size: 16.0pt;">Networking </span><span style="color: white; font-size: 11.0pt;"><o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><span style="color: white; mso-bidi-font-family: Garamond; mso-themecolor: background1;">Indeed, the Oracle Database Appliance provides various options for attaching network-based storage. It currently contains a total of six 1GbE ports and two 10GbE ports. All ports are bonded at the kernel level to provide high availability in an active/passive configuration. The Oracle Database Appliance utilizes four bonded network configurations: </span><span style="color: white; mso-bidi-font-family: Times; mso-themecolor: background1;"><o:p></o:p></span></div><div class="MsoNormal" style="line-height: 13.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><span style="color: white; mso-bidi-font-family: Times; mso-themecolor: background1;">•<span style="mso-spacerun: yes;">&nbsp; </span></span><span style="color: white; mso-bidi-font-family: Garamond; mso-themecolor: background1;">Net0 and Net1-Network ports for 1GbE public network.
<o:p></o:p></span></div><div class="MsoNormal" style="line-height: 13.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><span style="color: white; mso-bidi-font-family: Garamond; mso-themecolor: background1;"><span style="mso-tab-count: 1;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="color: white; mso-bidi-font-family: &quot;Courier New&quot;; mso-themecolor: background1;">o </span><span style="color: white; mso-bidi-font-family: Garamond; mso-themecolor: background1;">Normally used for the database public network interface <o:p></o:p></span></div><div class="MsoNormal" style="line-height: 13.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><span style="color: white; mso-bidi-font-family: Garamond; mso-themecolor: background1;"><span style="mso-tab-count: 1;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="color: white; mso-bidi-font-family: &quot;Courier New&quot;; mso-themecolor: background1;">o </span><span style="color: white; mso-bidi-font-family: Garamond; mso-themecolor: background1;">Eth2 and Eth3, bonded as “bond0” <o:p></o:p></span></div><div class="MsoNormal" style="line-height: 13.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><span style="color: white; mso-bidi-font-family: Times; mso-themecolor: background1;">•<span style="mso-spacerun: yes;">&nbsp; </span></span><span style="color: white; mso-bidi-font-family: Garamond; mso-themecolor: background1;">PCIe0–Network ports for10GbE public network
<o:p></o:p></span></div><div class="MsoNormal" style="line-height: 13.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><span style="color: white; mso-bidi-font-family: &quot;Courier New&quot;; mso-themecolor: background1;"><span style="mso-tab-count: 1;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>o </span><span style="color: white; mso-bidi-font-family: Garamond; mso-themecolor: background1;">Normally used for the database public network interface when 10GbE is required <o:p></o:p></span></div><div class="MsoNormal" style="line-height: 13.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><span style="color: white; mso-bidi-font-family: Garamond; mso-themecolor: background1;"><span style="mso-tab-count: 1;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="color: white; mso-bidi-font-family: &quot;Courier New&quot;; mso-themecolor: background1;">o </span><span style="color: white; mso-bidi-font-family: Garamond; mso-themecolor: background1;">Eth8 and Eth9, bonded as “Xbond0” </span><span style="color: white; mso-bidi-font-family: Times; mso-themecolor: background1;"><o:p></o:p></span></div><div class="MsoNormal" style="line-height: 13.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><span style="color: white; mso-bidi-font-family: Times; mso-themecolor: background1;">• </span><span style="color: white; mso-bidi-font-family: Garamond; mso-themecolor: background1;">PCIe1–Additional 1GbE network interface ports
<o:p></o:p></span></div><div class="MsoNormal" style="line-height: 13.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><span style="color: white; mso-bidi-font-family: Garamond; mso-themecolor: background1;"><span style="mso-tab-count: 1;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="color: white; mso-bidi-font-family: &quot;Courier New&quot;; mso-themecolor: background1;">o </span><span style="color: white; mso-bidi-font-family: Garamond; mso-themecolor: background1;">Normally used for NFS or backup networking </span><span style="color: white; mso-bidi-font-family: Times; mso-themecolor: background1;"><o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><span style="color: white; mso-bidi-font-family: &quot;Courier New&quot;; mso-themecolor: background1;"><span style="mso-tab-count: 1;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>o </span><span style="color: white; mso-bidi-font-family: Garamond; mso-themecolor: background1;">Eth4 and Eth5 bonded as “bond1” </span><span style="color: white; mso-bidi-font-family: Times; mso-themecolor: background1;"><o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><span style="color: white; mso-bidi-font-family: &quot;Courier New&quot;; mso-themecolor: background1;"><span style="mso-tab-count: 1;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>o </span><span style="color: white; mso-bidi-font-family: Garamond; mso-themecolor: background1;">Eth6 and Eth7 bonded as “bond2” <o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><span style="color: white; mso-bidi-font-family: Times; mso-themecolor: background1;">• </span><span style="color: white; mso-bidi-font-family: Garamond; mso-themecolor: background1;">Eth0 and Eth1 – internal interconnect </span><span style="color: white; mso-bidi-font-family: Times; mso-themecolor: background1;"><o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><br /></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><span style="color: white; font-size: 16.0pt;">High Availability </span><span style="color: white; font-size: 14.0pt;"><o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><span style="color: white; mso-bidi-font-family: Garamond; mso-bidi-font-size: 14.5pt; mso-themecolor: background1;">The Oracle Database Appliance is an engineered system that is designed from the hardware through the software stack to ensure high availability of the shared disk subsystem. Each Oracle Database Appliance server has redundant paths to the disks in the event of a hardware component failure. Besides, each server can access the disks independently of the other, which means one server can be down while the other server still has access to the disks. </span><span style="color: white; font-size: 10.0pt;"><o:p></o:p></span></div><div class="MsoNormal" style="line-height: 22.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><span style="color: white; font-size: 16.0pt;">Oracle Direct NFS </span><span style="color: white; font-size: 10.0pt;"><o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><span style="color: white; mso-bidi-font-family: Garamond; mso-bidi-font-size: 14.5pt; mso-themecolor: background1;">Oracle provides the ability to manage NFS using a feature called Oracle Direct NFS (dNFS). Oracle Direct NFS implements NFS V3 protocol within the Oracle database kernel itself. Oracle Direct NFS client overcomes many of the challenges associated with using NFS with the Oracle Database with simple configuration, better performance than traditional NFS clients, and offers consistent configuration across platforms. </span><span style="color: white; font-size: 10.0pt;"><o:p></o:p></span></div><div class="MsoNormal" style="line-height: 22.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><span style="color: white; font-size: 18.5pt;">Compression </span><span style="color: white; mso-bidi-font-family: Times; mso-themecolor: background1;"><o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt;"><span style="color: white; mso-bidi-font-family: Garamond; mso-bidi-font-size: 14.5pt; mso-themecolor: background1;">Technological innovation in Oracle compression assists customers in reducing the size of large data volumes, allowing for DBAs and administrators to significantly reduce their overall database storage footprint with compression for all types of data, namely: relational (table), unstructured (file), or backup data. Compression benefits include: </span><span style="color: white; font-size: 10.0pt;"><o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt; margin-left: .5in; margin-right: 0in; margin-top: 0in; mso-list: l0 level1 lfo3; tab-stops: 11.0pt .5in; text-indent: -.5in;"><!--[if !supportLists]--><span style="color: white; mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin; mso-themecolor: background1;"><span style="mso-list: Ignore;">•<span style="font: 7.0pt &quot;Times New Roman&quot;;">&nbsp;&nbsp; </span></span></span><!--[endif]--><span style="color: white; mso-bidi-font-family: Garamond; mso-themecolor: background1;">Reduced Live OLTP data size </span><span style="color: white; mso-bidi-font-family: Times; mso-themecolor: background1;">
<o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt; margin-left: .5in; margin-right: 0in; margin-top: 0in; mso-list: l0 level1 lfo3; tab-stops: 11.0pt .5in; text-indent: -.5in;"><!--[if !supportLists]--><span style="color: white; mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin; mso-themecolor: background1;"><span style="mso-list: Ignore;">•<span style="font: 7.0pt &quot;Times New Roman&quot;;">&nbsp;&nbsp; </span></span></span><!--[endif]--><span style="color: white; mso-bidi-font-family: Garamond; mso-themecolor: background1;">Reduced Backup Size </span><span style="color: white; mso-bidi-font-family: Times; mso-themecolor: background1;">
<o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt; margin-left: .5in; margin-right: 0in; margin-top: 0in; mso-list: l0 level1 lfo3; tab-stops: 11.0pt .5in; text-indent: -.5in;"><!--[if !supportLists]--><span style="color: white; mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin; mso-themecolor: background1;"><span style="mso-list: Ignore;">•<span style="font: 7.0pt &quot;Times New Roman&quot;;">&nbsp;&nbsp; </span></span></span><!--[endif]--><span style="color: white; mso-bidi-font-family: Garamond; mso-themecolor: background1;">Optimally decreased Disaster or Standby database size </span><span style="color: white; mso-bidi-font-family: Times; mso-themecolor: background1;">
<o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt; margin-left: .5in; margin-right: 0in; margin-top: 0in; mso-list: l0 level1 lfo3; tab-stops: 11.0pt .5in; text-indent: -.5in;"><!--[if !supportLists]--><span style="color: white; mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin; mso-themecolor: background1;"><span style="mso-list: Ignore;">•<span style="font: 7.0pt &quot;Times New Roman&quot;;">&nbsp;&nbsp; </span></span></span><!--[endif]--><span style="color: white; mso-bidi-font-family: Garamond; mso-themecolor: background1;">Minimized Export Dump size </span><span style="color: white; mso-bidi-font-family: Times; mso-themecolor: background1;">
<o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt; margin-left: .5in; margin-right: 0in; margin-top: 0in; mso-list: l0 level1 lfo3; tab-stops: 11.0pt .5in; text-indent: -.5in;"><!--[if !supportLists]--><span style="color: white; mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin; mso-themecolor: background1;"><span style="mso-list: Ignore;">•<span style="font: 7.0pt &quot;Times New Roman&quot;;">&nbsp;&nbsp; </span></span></span><!--[endif]--><span style="color: white; mso-bidi-font-family: Garamond; mso-themecolor: background1;">Reduced disk I/O while reading data blocks ( without overhead while reading ) </span><span style="color: white; mso-bidi-font-family: Times; mso-themecolor: background1;">
<o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt; margin-left: .5in; margin-right: 0in; margin-top: 0in; mso-list: l0 level1 lfo3; tab-stops: 11.0pt .5in; text-indent: -.5in;"><!--[if !supportLists]--><span style="color: white; mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin; mso-themecolor: background1;"><span style="mso-list: Ignore;">•<span style="font: 7.0pt &quot;Times New Roman&quot;;">&nbsp;&nbsp; </span></span></span><!--[endif]--><span style="color: white; mso-bidi-font-family: Garamond; mso-themecolor: background1;">Reduced network traffic whiles ending archive redo logs to DR site. </span><span style="color: white; mso-bidi-font-family: Times; mso-themecolor: background1;">
<o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt; tab-stops: 11.0pt .5in;"><span style="color: white; font-size: 16.0pt;">Hybrid Columnar Compression 
<o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt; tab-stops: 11.0pt .5in;"><span style="color: white; mso-bidi-font-family: Times; mso-themecolor: background1;">Currently, with Oracle Database Appliance version 2.2 and higher and Sun ZFS Storage Appliance (ZFSSA), data can now be compressed using Hybrid Columnar Compression (HCC). This is quite beneficial because with HCC, it is possible to store user data in significantly less space and retrieve data with less scan IO. With HCC warehouse compression, it is possible to attain 6 to 10 times in storage savings and with HCC archive compression you can have 15 to 70 times in storage savings. For both archive and warehouse compression, there are LOW and HIGH settings that you can choose from. The increased storage savings may cause data load-times to increase insignificantly. Therefore, LOW should be chosen for environments where load time service levels are more critical than query performance. 
HCC will allow you to maximize your storage capabilities and account for accelerated data growth without sacrificing performance. 
<o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt; tab-stops: 11.0pt .5in;"><br /></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><b style="mso-bidi-font-weight: normal;"><span style="color: white; font-size: 16.0pt;">ODA Architectural Enhancements and Customization<o:p></o:p></span></b></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt;"><span style="color: white; mso-bidi-font-family: Times; mso-themecolor: background1;">Customers can use Oracle certified NFS-attached storage with Oracle Database Appliance to store database files for both read and write operations. This external storage can be used to further extend the storage offered by Oracle Database Appliance, e.g., for the purpose of:<o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt;"><span style="color: white; mso-bidi-font-family: Times; mso-themecolor: background1;">• Expanding beyond the 4TB limit: place additional data onNFS attached storage.<o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt;"><span style="color: white; mso-bidi-font-family: Times; mso-themecolor: background1;">• Backups: create database disk backups external to the Oracle Database Appliance.<o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt;"><span style="color: white; mso-bidi-font-family: Times; mso-themecolor: background1;">Expanding Oracle Database Appliance Storage<o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt;"><span style="color: white; mso-bidi-font-family: Times; mso-themecolor: background1;">• Storage Tiering: place frequently accessed table on internal SAS disk, and less frequently used tables on NFS. You can partition the large tables and move the older partitions to an NFS attached tablespace based on usage<o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt;"><span style="color: white; mso-bidi-font-family: Times; mso-themecolor: background1;">• Enable Hybrid Columnar Compression (HCC): see dramatic compression and performance gains using HCC on ZFS Storage Appliance<o:p></o:p></span></div><div class="MsoNormal"><b style="mso-bidi-font-weight: normal;"><span style="color: white; font-size: 16.0pt;">VLAN Support <o:p></o:p></span></b></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt;"><span style="color: white; mso-themecolor: background1;">VLAN Support provides Network Security Isolation for Multiple Workloads Sharing Common Network <o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt;"><span style="color: white; mso-themecolor: background1;">• Servers have finite number of networks, while ODA X6-2-HA has 2 bonded public network interfaces.<o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt;"><span style="color: white; mso-themecolor: background1;">• When multiple networks are required, there needs to be a way to share the network interfaces provided.<o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt;"><span style="color: white; mso-themecolor: background1;">• Support for VLANs enable the sharing of a common network interface, but still provide security isolation since it cannot sniff packets of a different workload.<o:p></o:p></span></div><div class="MsoNormal"><br /></div><div class="MsoNormal"><b style="mso-bidi-font-weight: normal;"><span style="color: white; font-size: 16.0pt;">Oracle Data Guard Strategy<o:p></o:p></span></b></div><div class="MsoNormal"><br /></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt;"><span style="color: white; mso-themecolor: background1;">Customizing Oracle Data Guard with ODA provides an approach to MAA, since ODA provides a pre-built, pre-tuned and ready-to-use cluster database system that includes servers, storage, and software. <o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt;"><br /></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt;"><span style="color: white; mso-themecolor: background1;">Data Guard provides a extra-level of disaster recovery and in some business process model can also be part of the company's daily engineering and production strategy.<o:p></o:p></span></div><div class="MsoNormal"><br /></div><div class="MsoNormal"><b style="mso-bidi-font-weight: normal;"><span style="color: white; font-size: 14.0pt;">Benefits of Using Oracle Data Guard<o:p></o:p></span></b></div><div class="MsoNormal"><br /></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt;"><span style="color: white; mso-themecolor: background1;">Among the key benefits, we can name the following:<o:p></o:p></span></div><div class="MsoListParagraphCxSpFirst" style="line-height: 17.0pt; margin-bottom: 12.0pt; mso-add-space: auto; mso-list: l1 level1 lfo1; text-indent: -.25in;"><!--[if !supportLists]--><span style="color: white; font-family: &quot;symbol&quot;; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-themecolor: background1;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt &quot;Times New Roman&quot;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><!--[endif]--><span style="color: white; mso-themecolor: background1;">Migration to Oracle Database Appliance<o:p></o:p></span></div><div class="MsoListParagraphCxSpMiddle" style="line-height: 17.0pt; margin-bottom: 12.0pt; mso-add-space: auto; mso-list: l1 level1 lfo1; text-indent: -.25in;"><!--[if !supportLists]--><span style="color: white; font-family: &quot;symbol&quot;; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-themecolor: background1;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt &quot;Times New Roman&quot;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><!--[endif]--><span style="color: white; mso-themecolor: background1;">Disaster Recovery<o:p></o:p></span></div><div class="MsoListParagraphCxSpMiddle" style="line-height: 17.0pt; margin-bottom: 12.0pt; mso-add-space: auto; mso-list: l1 level1 lfo1; text-indent: -.25in;"><!--[if !supportLists]--><span style="color: white; font-family: &quot;symbol&quot;; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-themecolor: background1;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt &quot;Times New Roman&quot;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><!--[endif]--><span style="color: white; mso-themecolor: background1;">High-Availability<o:p></o:p></span></div><div class="MsoListParagraphCxSpMiddle" style="line-height: 17.0pt; margin-bottom: 12.0pt; mso-add-space: auto; mso-list: l1 level1 lfo1; text-indent: -.25in;"><!--[if !supportLists]--><span style="color: white; font-family: &quot;symbol&quot;; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-themecolor: background1;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt &quot;Times New Roman&quot;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><!--[endif]--><span style="color: white; mso-themecolor: background1;">Database Rolling Upgrades<o:p></o:p></span></div><div class="MsoListParagraphCxSpMiddle" style="line-height: 17.0pt; margin-bottom: 12.0pt; mso-add-space: auto; mso-list: l1 level1 lfo1; text-indent: -.25in;"><!--[if !supportLists]--><span style="color: white; font-family: &quot;symbol&quot;; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-themecolor: background1;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt &quot;Times New Roman&quot;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><!--[endif]--><span style="color: white; mso-themecolor: background1;">Offloading Workload Activities, including read-only queries, backups, and block repair, among others.<o:p></o:p></span></div><div class="MsoListParagraphCxSpLast" style="line-height: 17.0pt; margin-bottom: 12.0pt; mso-add-space: auto; mso-list: l1 level1 lfo1; text-indent: -.25in;"><!--[if !supportLists]--><span style="color: white; font-family: &quot;symbol&quot;; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-themecolor: background1;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt &quot;Times New Roman&quot;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><!--[endif]--><span style="color: white; mso-themecolor: background1;">Snapshot Standby<o:p></o:p></span></div><div class="MsoNormal"><br /></div><div class="MsoNormal"><b style="mso-bidi-font-weight: normal;"><span style="color: white; font-size: 16.0pt;">Strategies and Practices for Setup<o:p></o:p></span></b></div><div class="MsoNormal"><br /></div><div class="MsoNormal"><span style="color: white; mso-themecolor: background1;">Among the practices for setup, a lead DBA can utilize the following approaches, namely:<o:p></o:p></span></div><div class="MsoNormal"><br /></div><div class="MsoNormal"><b style="mso-bidi-font-weight: normal;"><span style="color: white; font-size: 14.0pt;">Matching the primary and standby configuration<o:p></o:p></span></b></div><div class="MsoNormal"><br /></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt;"><span style="color: white; mso-themecolor: background1;">In order to maintain consistent service levels and to use the primary and standby databases seamlessly, it is important to match the resources, setup, and configuration of the two systems as much as possible.<span style="mso-spacerun: yes;">&nbsp; </span>This choice can involve the following options, namely:<o:p></o:p></span></div><div class="MsoNormal"><br /></div><div class="MsoNormal"><b style="mso-bidi-font-weight: normal;"><span style="color: white; font-size: 14.0pt;">Using Dedicated Network for Stand by Traffic<o:p></o:p></span></b></div><div class="MsoNormal"><br /></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt;"><span style="color: white; mso-themecolor: background1;">With this choice, Oracle Database Appliance is provided pre-built with multiple redundant network interfaces.<span style="mso-spacerun: yes;">&nbsp; </span>The specific options comprehend:<o:p></o:p></span></div><div class="MsoListParagraphCxSpFirst" style="line-height: 17.0pt; margin-bottom: 12.0pt; mso-add-space: auto; mso-list: l2 level1 lfo2; text-indent: -.25in;"><!--[if !supportLists]--><span style="color: white; font-family: &quot;symbol&quot;; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-themecolor: background1;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt &quot;Times New Roman&quot;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><!--[endif]--><span style="color: white; mso-themecolor: background1;">Running Primary and Standby Database on Separate Oracle Database Appliances<o:p></o:p></span></div><div class="MsoListParagraphCxSpMiddle" style="line-height: 17.0pt; margin-bottom: 12.0pt; mso-add-space: auto; mso-list: l2 level1 lfo2; text-indent: -.25in;"><!--[if !supportLists]--><span style="color: white; font-family: &quot;symbol&quot;; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-themecolor: background1;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt &quot;Times New Roman&quot;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><!--[endif]--><span style="color: white; mso-themecolor: background1;">Running Primary and Standby Database in Same Configuration<o:p></o:p></span></div><div class="MsoListParagraphCxSpMiddle" style="line-height: 17.0pt; margin-bottom: 12.0pt; mso-add-space: auto; mso-list: l2 level1 lfo2; text-indent: -.25in;"><!--[if !supportLists]--><span style="color: white; font-family: &quot;symbol&quot;; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-themecolor: background1;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt &quot;Times New Roman&quot;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><!--[endif]--><span style="color: white; mso-themecolor: background1;">Sizing Primary and Standby Instances Similar to Each Other<o:p></o:p></span></div><div class="MsoListParagraphCxSpLast" style="line-height: 17.0pt; margin-bottom: 12.0pt; mso-add-space: auto; mso-list: l2 level1 lfo2; text-indent: -.25in;"><!--[if !supportLists]--><span style="color: white; font-family: &quot;symbol&quot;; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-themecolor: background1;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt &quot;Times New Roman&quot;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><!--[endif]--><span style="color: white; mso-themecolor: background1;">Pre-configuring Primary and Standby Databases for Role Transition<o:p></o:p></span></div><div class="MsoNormal"><br /></div><div class="MsoNormal"><b style="mso-bidi-font-weight: normal;"><span style="color: white; font-size: 14.0pt;">Configuring Flashback Database on both Primary and Standby Databases<o:p></o:p></span></b></div><div class="MsoNormal"><br /></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt;"><span style="color: white; mso-themecolor: background1;">The Flashback Database feature enables rapid role transitions and reduces the effort required to reestablish database roles after a transition.<o:p></o:p></span></div><div class="MsoNormal"><br /></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><b style="mso-bidi-font-weight: normal;"><span style="color: white; font-size: 14.5pt;">Using Dedicated Network for Standby Traffic</span></b><b style="mso-bidi-font-weight: normal;"><span style="color: white; font-size: 14.5pt;"><o:p></o:p></span></b></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt;"><span style="color: white; font-size: 14.5pt;">Oracle Database Appliance comes pre-built with multiple redundant network interfaces. <o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt;"><b style="mso-bidi-font-weight: normal;"><span style="color: white; font-size: 14.5pt;">Offloading Certain Workloads to Standby</span></b><b style="mso-bidi-font-weight: normal;"><span style="color: white; font-size: 14.5pt;"><br /></span></b><span style="color: white; font-size: 14.5pt;"><br />Oracle Recovery Manager (RMAN) works consistently and transparently across the primary and standby databases. </span><span style="color: white; mso-bidi-font-family: Times; mso-themecolor: background1;"><o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><b style="mso-bidi-font-weight: normal;"><span style="color: white; font-size: 14.5pt;">Utilizing Oracle Active Data Guard<o:p></o:p></span></b></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt;"><span style="color: white; font-size: 14.5pt;">Oracle Active Data Guard allows the standby database to be open for read-only operations while managed recovery (redo transmission and application on the standby) is concurrently active.<o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><b style="mso-bidi-font-weight: normal;"><span style="color: white; font-size: 14.5pt;">Reviewing Oracle Maximum Availability Architecture (MAA) Best practices for Oracle Database <o:p></o:p></span></b></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt;"><span style="color: white; font-size: 14.5pt;">Based on the kind deployment and usage of the Data Guard environment, you may find the following additional best practices for Oracle Data Guard useful.<o:p></o:p></span></div><div class="MsoNormal" style="line-height: 17.0pt; margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><b style="mso-bidi-font-weight: normal;"><span style="color: white; font-size: 14.5pt;">HANDS-ON ACTION<o:p></o:p></span></b></div><div class="separator" style="clear: both; text-align: center;"><!--[if gte mso 9]><xml> <o:DocumentProperties> <o:Revision>0</o:Revision> <o:TotalTime>0</o:TotalTime> <o:Pages>1</o:Pages> <o:Words>1487</o:Words> <o:Characters>8477</o:Characters> <o:Company>ADN R & D</o:Company> <o:Lines>70</o:Lines> <o:Paragraphs>19</o:Paragraphs> <o:CharactersWithSpaces>9945</o:CharactersWithSpaces> <o:Version>14.0</o:Version> </o:DocumentProperties> <o:OfficeDocumentSettings> <o:AllowPNG/> </o:OfficeDocumentSettings></xml><![endif]--> <!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves/> <w:TrackFormatting/> <w:PunctuationKerning/> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF/> <w:LidThemeOther>EN-US</w:LidThemeOther> <w:LidThemeAsian>JA</w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> <w:Compatibility> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:SplitPgBreakAndParaMark/> <w:EnableOpenTypeKerning/> <w:DontFlipMirrorIndents/> <w:OverrideTableStyleHps/> <w:UseFELayout/> </w:Compatibility> <m:mathPr> <m:mathFont m:val="Cambria Math"/> <m:brkBin m:val="before"/> <m:brkBinSub m:val="--"/> <m:smallFrac m:val="off"/> <m:dispDef/> <m:lMargin m:val="0"/> <m:rMargin m:val="0"/> <m:defJc m:val="centerGroup"/> <m:wrapIndent m:val="1440"/> <m:intLim m:val="subSup"/> <m:naryLim m:val="undOvr"/> </m:mathPr></w:WordDocument></xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true" DefSemiHidden="true" DefQFormat="false" DefPriority="99" LatentStyleCount="276"> <w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Normal"/> <w:LsdException Locked="false" Priority="9" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="heading 1"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/> <w:LsdException Locked="false" Priority="39" Name="toc 1"/> <w:LsdException Locked="false" Priority="39" Name="toc 2"/> <w:LsdException Locked="false" Priority="39" Name="toc 3"/> <w:LsdException Locked="false" Priority="39" Name="toc 4"/> <w:LsdException Locked="false" Priority="39" Name="toc 5"/> <w:LsdException Locked="false" Priority="39" Name="toc 6"/> <w:LsdException Locked="false" Priority="39" Name="toc 7"/> <w:LsdException Locked="false" Priority="39" Name="toc 8"/> <w:LsdException Locked="false" Priority="39" Name="toc 9"/> <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/> <w:LsdException Locked="false" Priority="10" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Title"/> <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/> <w:LsdException Locked="false" Priority="11" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/> <w:LsdException Locked="false" Priority="22" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Strong"/> <w:LsdException Locked="false" Priority="20" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/> <w:LsdException Locked="false" Priority="59" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid"/> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/> <w:LsdException Locked="false" Priority="1" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 1"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 1"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 1"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/> <w:LsdException Locked="false" Priority="34" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/> <w:LsdException Locked="false" Priority="29" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Quote"/> <w:LsdException Locked="false" Priority="30" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 1"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 1"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 2"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 2"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 2"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 2"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 2"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 3"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 3"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 3"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 3"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 3"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 4"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 4"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 4"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 4"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 4"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 5"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 5"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 5"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 5"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 5"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 6"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 6"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 6"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 6"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 6"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/> <w:LsdException Locked="false" Priority="19" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/> <w:LsdException Locked="false" Priority="21" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/> <w:LsdException Locked="false" Priority="31" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/> <w:LsdException Locked="false" Priority="32" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/> <w:LsdException Locked="false" Priority="33" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Book Title"/> <w:LsdException Locked="false" Priority="37" Name="Bibliography"/> <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/> </w:LatentStyles></xml><![endif]--><style><!-- /* Font Definitions */ @font-face {font-family:Arial; panose-1:2 11 6 4 2 2 2 2 2 4; mso-font-charset:0; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:-536859905 -1073711037 9 0 511 0;} @font-face {font-family:"Courier New"; panose-1:2 7 3 9 2 2 5 2 4 4; mso-font-charset:0; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:-536859905 -1073711037 9 0 511 0;} @font-face {font-family:Times; panose-1:2 0 5 0 0 0 0 0 0 0; mso-font-charset:0; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 0 0 0 1 0;} @font-face {font-family:Wingdings; panose-1:5 0 0 0 0 0 0 0 0 0; mso-font-charset:2; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face {font-family:"MS 明朝"; mso-font-charset:78; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:-536870145 1791491579 18 0 131231 0;} @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:0; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:-536870145 1107305727 0 0 415 0;} @font-face {font-family:Cambria; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:0; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:-536870145 1073743103 0 0 415 0;} @font-face {font-family:Garamond; panose-1:2 2 4 4 3 3 1 1 8 3; mso-font-charset:0; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 0 0 0 1 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:Cambria; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS 明朝"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph {mso-style-priority:34; mso-style-unhide:no; mso-style-qformat:yes; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:.5in; margin-bottom:.0001pt; mso-add-space:auto; mso-pagination:widow-orphan; font-size:12.0pt; font-family:Cambria; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS 明朝"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst {mso-style-priority:34; mso-style-unhide:no; mso-style-qformat:yes; mso-style-type:export-only; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:.5in; margin-bottom:.0001pt; mso-add-space:auto; mso-pagination:widow-orphan; font-size:12.0pt; font-family:Cambria; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS 明朝"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle {mso-style-priority:34; mso-style-unhide:no; mso-style-qformat:yes; mso-style-type:export-only; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:.5in; margin-bottom:.0001pt; mso-add-space:auto; mso-pagination:widow-orphan; font-size:12.0pt; font-family:Cambria; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS 明朝"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast {mso-style-priority:34; mso-style-unhide:no; mso-style-qformat:yes; mso-style-type:export-only; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:.5in; margin-bottom:.0001pt; mso-add-space:auto; mso-pagination:widow-orphan; font-size:12.0pt; font-family:Cambria; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS 明朝"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; font-family:Cambria; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS 明朝"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} @page WordSection1 {size:8.5in 11.0in; margin:1.0in 1.25in 1.0in 1.25in; mso-header-margin:.5in; mso-footer-margin:.5in; mso-paper-source:0;} div.WordSection1 {page:WordSection1;} /* List Definitions */ @list l0 {mso-list-id:1; mso-list-type:hybrid; mso-list-template-ids:1 1 -1 -1 -1 -1 -1 -1 -1 -1;} @list l0:level1 {mso-level-number-format:bullet; mso-level-text:•; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in;} @list l0:level2 {mso-level-start-at:0; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0in; text-indent:0in;} @list l0:level3 {mso-level-start-at:0; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0in; text-indent:0in;} @list l0:level4 {mso-level-start-at:0; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0in; text-indent:0in;} @list l0:level5 {mso-level-start-at:0; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0in; text-indent:0in;} @list l0:level6 {mso-level-start-at:0; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0in; text-indent:0in;} @list l0:level7 {mso-level-start-at:0; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0in; text-indent:0in;} @list l0:level8 {mso-level-start-at:0; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0in; text-indent:0in;} @list l0:level9 {mso-level-start-at:0; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0in; text-indent:0in;} @list l1 {mso-list-id:1143498977; mso-list-type:hybrid; mso-list-template-ids:-1535625256 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l1:level1 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Symbol;} @list l1:level2 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:"Courier New"; mso-bidi-font-family:"Times New Roman";} @list l1:level3 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Wingdings;} @list l1:level4 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Symbol;} @list l1:level5 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:"Courier New"; mso-bidi-font-family:"Times New Roman";} @list l1:level6 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Wingdings;} @list l1:level7 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Symbol;} @list l1:level8 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:"Courier New"; mso-bidi-font-family:"Times New Roman";} @list l1:level9 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Wingdings;} @list l2 {mso-list-id:1805544487; mso-list-type:hybrid; mso-list-template-ids:-1124985078 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l2:level1 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Symbol;} @list l2:level2 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:"Courier New"; mso-bidi-font-family:"Times New Roman";} @list l2:level3 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Wingdings;} @list l2:level4 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Symbol;} @list l2:level5 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:"Courier New"; mso-bidi-font-family:"Times New Roman";} @list l2:level6 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Wingdings;} @list l2:level7 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Symbol;} @list l2:level8 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:"Courier New"; mso-bidi-font-family:"Times New Roman";} @list l2:level9 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Wingdings;} ol {margin-bottom:0in;} ul {margin-bottom:0in;} </style></div>--&gt; <!--[if gte mso 10]><style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin:0in; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:Cambria; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin;} </style><![endif]--> <!--StartFragment--> <span style="color: white; font-family: &quot;cambria&quot;; font-size: 14.5pt;">The following is a summary of an ODA Lab, as provided by Oracle University.</span><span style="font-family: &quot;cambria&quot;; font-size: 12pt;"> </span><!--EndFragment--><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-h4jC3pbcdVU/WX25rH9hogI/AAAAAAAAOv0/1QN8vyNJ-xYTDvafKs-pSfVcixrON9s-ACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.22.03%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="485" data-original-width="895" height="346" src="https://2.bp.blogspot.com/-h4jC3pbcdVU/WX25rH9hogI/AAAAAAAAOv0/1QN8vyNJ-xYTDvafKs-pSfVcixrON9s-ACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.22.03%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-F0dncqv54i4/WX25rM4T68I/AAAAAAAAOv4/SwcEMpQhTXsU6LKmlXdR86k-sFdHa3pCQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.23.00%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="477" data-original-width="890" height="342" src="https://2.bp.blogspot.com/-F0dncqv54i4/WX25rM4T68I/AAAAAAAAOv4/SwcEMpQhTXsU6LKmlXdR86k-sFdHa3pCQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.23.00%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-dnfR8ROd2U4/WX25rIWnx4I/AAAAAAAAOvw/1icFDb9TvFY_VHLx03U-riaFBiLYbAfMQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.23.15%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="491" data-original-width="894" height="350" src="https://1.bp.blogspot.com/-dnfR8ROd2U4/WX25rIWnx4I/AAAAAAAAOvw/1icFDb9TvFY_VHLx03U-riaFBiLYbAfMQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.23.15%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-y8GyypGV7Hc/WX25rk-Sg7I/AAAAAAAAOv8/F25nhDsAyNMKJmVLUHyIOAn2qCSbHLW6gCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.23.38%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="484" data-original-width="891" height="346" src="https://2.bp.blogspot.com/-y8GyypGV7Hc/WX25rk-Sg7I/AAAAAAAAOv8/F25nhDsAyNMKJmVLUHyIOAn2qCSbHLW6gCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.23.38%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-u4odVpHaF4k/WX25r7nwQVI/AAAAAAAAOwE/R8UYPxucS5cbNokfaOZXkX4r3v5PE5W_gCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.24.33%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="490" data-original-width="899" height="348" src="https://1.bp.blogspot.com/-u4odVpHaF4k/WX25r7nwQVI/AAAAAAAAOwE/R8UYPxucS5cbNokfaOZXkX4r3v5PE5W_gCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.24.33%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-ENH9WCzQ1dE/WX25rypmTCI/AAAAAAAAOwA/0htTwNW7NwUBkyh_1pq2fAPrNtvTh-Q_QCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.25.05%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="486" data-original-width="894" height="346" src="https://2.bp.blogspot.com/-ENH9WCzQ1dE/WX25rypmTCI/AAAAAAAAOwA/0htTwNW7NwUBkyh_1pq2fAPrNtvTh-Q_QCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.25.05%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-EXx2NjLb8Hs/WX25sZxTyTI/AAAAAAAAOwI/-m-6DyxlEuwvt8iDkt0JB00MXD99IeYRgCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.25.22%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="267" data-original-width="889" height="192" src="https://4.bp.blogspot.com/-EXx2NjLb8Hs/WX25sZxTyTI/AAAAAAAAOwI/-m-6DyxlEuwvt8iDkt0JB00MXD99IeYRgCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.25.22%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-4RjQc67jzyI/WX25ssZJWYI/AAAAAAAAOwM/tMmd4ewVsIYsqUwG9wIEFCm2MLVFQjToQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.26.17%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="475" data-original-width="884" height="342" src="https://4.bp.blogspot.com/-4RjQc67jzyI/WX25ssZJWYI/AAAAAAAAOwM/tMmd4ewVsIYsqUwG9wIEFCm2MLVFQjToQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.26.17%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-cKNhvmlK0cM/WX25sr-su-I/AAAAAAAAOwQ/xAuoJWZ6SIshHndnytP-pyA3Y3Vv8Rn1ACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.26.34%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="483" data-original-width="894" height="344" src="https://3.bp.blogspot.com/-cKNhvmlK0cM/WX25sr-su-I/AAAAAAAAOwQ/xAuoJWZ6SIshHndnytP-pyA3Y3Vv8Rn1ACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.26.34%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-7Qj3zcw1MnU/WX25s65GmdI/AAAAAAAAOwY/3uIu81GWjPE4yxFUzlRrUHqGOgZir95PwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.26.55%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="484" data-original-width="889" height="348" src="https://2.bp.blogspot.com/-7Qj3zcw1MnU/WX25s65GmdI/AAAAAAAAOwY/3uIu81GWjPE4yxFUzlRrUHqGOgZir95PwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.26.55%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-GhipsknJsc0/WX25sz2VtMI/AAAAAAAAOwU/jSvvPp5nb_8AbZmpMXwmAgRTfSLbJXeFwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.27.17%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="481" data-original-width="890" height="344" src="https://3.bp.blogspot.com/-GhipsknJsc0/WX25sz2VtMI/AAAAAAAAOwU/jSvvPp5nb_8AbZmpMXwmAgRTfSLbJXeFwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.27.17%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-0AQixkVvlS8/WX25tJzihFI/AAAAAAAAOwc/tRzylrZirvgZUDtKl-0PObkjrgyvxLJMACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.35.50%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="687" data-original-width="1027" height="428" src="https://4.bp.blogspot.com/-0AQixkVvlS8/WX25tJzihFI/AAAAAAAAOwc/tRzylrZirvgZUDtKl-0PObkjrgyvxLJMACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.35.50%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-aAMObxFmO_g/WX25ti-YceI/AAAAAAAAOwg/prwbF8F3Xjgm1Tb1UWY9MVqaNMWDUu9ZgCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.35.59%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="768" data-original-width="1366" height="358" src="https://1.bp.blogspot.com/-aAMObxFmO_g/WX25ti-YceI/AAAAAAAAOwg/prwbF8F3Xjgm1Tb1UWY9MVqaNMWDUu9ZgCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.35.59%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-hj-oklXSxpg/WX25tvlZklI/AAAAAAAAOwk/zynD7U7IBZQId7cSMOKPYOAScxdleKg9wCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.36.29%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="617" data-original-width="1023" height="386" src="https://2.bp.blogspot.com/-hj-oklXSxpg/WX25tvlZklI/AAAAAAAAOwk/zynD7U7IBZQId7cSMOKPYOAScxdleKg9wCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.36.29%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/--OzjBORzMZ0/WX25txO6c4I/AAAAAAAAOwo/SAMfNOhjr6IKIOENvJ-OUTq2Kkj6FRwcwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.37.14%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="622" data-original-width="1022" height="388" src="https://4.bp.blogspot.com/--OzjBORzMZ0/WX25txO6c4I/AAAAAAAAOwo/SAMfNOhjr6IKIOENvJ-OUTq2Kkj6FRwcwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.37.14%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-cOiQa7LzTqs/WX25uPfeimI/AAAAAAAAOws/pMJglpoiQNUu_yXvMd7zgImLfEbMMEc2QCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.39.03%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="620" data-original-width="1023" height="386" src="https://4.bp.blogspot.com/-cOiQa7LzTqs/WX25uPfeimI/AAAAAAAAOws/pMJglpoiQNUu_yXvMd7zgImLfEbMMEc2QCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.39.03%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-6l2YSJRrbQI/WX25uvnURQI/AAAAAAAAOww/1aBdYRO7MLMO02JYqSOp9pyehTwMZoUvACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.39.53%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="591" data-original-width="1020" height="370" src="https://2.bp.blogspot.com/-6l2YSJRrbQI/WX25uvnURQI/AAAAAAAAOww/1aBdYRO7MLMO02JYqSOp9pyehTwMZoUvACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.39.53%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-VGlXzuT7rOg/WX25ujiIPEI/AAAAAAAAOw0/pwP-T3wLU3Er5w4fO_97AsxRUZ_8O461gCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.43.30%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="585" data-original-width="1020" height="366" src="https://1.bp.blogspot.com/-VGlXzuT7rOg/WX25ujiIPEI/AAAAAAAAOw0/pwP-T3wLU3Er5w4fO_97AsxRUZ_8O461gCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.43.30%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-dd7kBzNFY_g/WX25u_izwuI/AAAAAAAAOw8/zJbsOjIGpkslFyOdSR-nfxl1cwS1lp0qgCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.44.44%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="612" data-original-width="1019" height="384" src="https://1.bp.blogspot.com/-dd7kBzNFY_g/WX25u_izwuI/AAAAAAAAOw8/zJbsOjIGpkslFyOdSR-nfxl1cwS1lp0qgCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.44.44%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-sktKOJoo_8M/WX25vLRnT6I/AAAAAAAAOw4/icSAgXfmiVEhqwLdvAb7xMKsKHwXP87iACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.45.02%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="587" data-original-width="1021" height="366" src="https://1.bp.blogspot.com/-sktKOJoo_8M/WX25vLRnT6I/AAAAAAAAOw4/icSAgXfmiVEhqwLdvAb7xMKsKHwXP87iACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.45.02%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-08xcnTg6-yQ/WX25vVFVWNI/AAAAAAAAOxA/_5G_I5N1FQwT8feytUPBjtGEw_p9ORdyQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.45.36%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="636" data-original-width="1017" height="400" src="https://4.bp.blogspot.com/-08xcnTg6-yQ/WX25vVFVWNI/AAAAAAAAOxA/_5G_I5N1FQwT8feytUPBjtGEw_p9ORdyQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.45.36%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-EbZMAkIf7KU/WX25v9Q04pI/AAAAAAAAOxE/Dqt9UPfH2vkpeA9AkS6KVMnn-LoEqYh0wCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.46.42%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="636" data-original-width="1020" height="398" src="https://4.bp.blogspot.com/-EbZMAkIf7KU/WX25v9Q04pI/AAAAAAAAOxE/Dqt9UPfH2vkpeA9AkS6KVMnn-LoEqYh0wCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.46.42%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-deVEOdVr0D4/WX25wPVlJcI/AAAAAAAAOxI/YwH_LYjoFmQ6mfCElBF6t0U5PH7gT0qsQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.47.15%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="635" data-original-width="1019" height="398" src="https://3.bp.blogspot.com/-deVEOdVr0D4/WX25wPVlJcI/AAAAAAAAOxI/YwH_LYjoFmQ6mfCElBF6t0U5PH7gT0qsQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.47.15%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-C8TNmOcb_fQ/WX25wTNYxVI/AAAAAAAAOxM/UCGXOZwwuEQyQrgBIdOYR07aR1El80AEACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.48.22%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="644" data-original-width="1022" height="402" src="https://2.bp.blogspot.com/-C8TNmOcb_fQ/WX25wTNYxVI/AAAAAAAAOxM/UCGXOZwwuEQyQrgBIdOYR07aR1El80AEACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.48.22%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-Dva65E88Gjg/WX25wsBpf0I/AAAAAAAAOxQ/cE12dPa6Zn0OuANiipJHvrzybOoIcgBDgCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.48.44%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="638" data-original-width="1017" height="400" src="https://3.bp.blogspot.com/-Dva65E88Gjg/WX25wsBpf0I/AAAAAAAAOxQ/cE12dPa6Zn0OuANiipJHvrzybOoIcgBDgCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.48.44%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-ExPDgbYISjY/WX25wn8MADI/AAAAAAAAOxU/fqukufF77EwHeKjlDpSx0CVDadliAd2CQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.49.21%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="642" data-original-width="1021" height="402" src="https://2.bp.blogspot.com/-ExPDgbYISjY/WX25wn8MADI/AAAAAAAAOxU/fqukufF77EwHeKjlDpSx0CVDadliAd2CQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.49.21%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-fu8HciLkR6o/WX25w9Ez3SI/AAAAAAAAOxY/elaHllWj2gIcM_4mP-jJGt7iRqrubrwiwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.49.53%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="639" data-original-width="1023" height="398" src="https://1.bp.blogspot.com/-fu8HciLkR6o/WX25w9Ez3SI/AAAAAAAAOxY/elaHllWj2gIcM_4mP-jJGt7iRqrubrwiwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.49.53%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-5gIKgfUkCSU/WX25w-6qczI/AAAAAAAAOxc/8z21bhDSLlg02qFGlofL-MP5qZ3gvBuHwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.50.17%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="643" data-original-width="1031" height="398" src="https://3.bp.blogspot.com/-5gIKgfUkCSU/WX25w-6qczI/AAAAAAAAOxc/8z21bhDSLlg02qFGlofL-MP5qZ3gvBuHwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.50.17%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-oM6K48BXk_o/WX25xBanANI/AAAAAAAAOxk/8JHPnCVI-ysDFo2XbH1UA4S9qy2Q0yXdQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.50.51%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="643" data-original-width="1032" height="398" src="https://1.bp.blogspot.com/-oM6K48BXk_o/WX25xBanANI/AAAAAAAAOxk/8JHPnCVI-ysDFo2XbH1UA4S9qy2Q0yXdQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.50.51%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-ggB2bPLyE_A/WX25xJ1ujnI/AAAAAAAAOxg/-V4KpfE5wzgQZ5F7s-LrbtIQZH_IvfmaQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.51.08%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="645" data-original-width="1031" height="400" src="https://2.bp.blogspot.com/-ggB2bPLyE_A/WX25xJ1ujnI/AAAAAAAAOxg/-V4KpfE5wzgQZ5F7s-LrbtIQZH_IvfmaQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.51.08%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-63dTFuGUk6w/WX25xZWQv5I/AAAAAAAAOxo/QKC_kaLGCEYPO_Y3ArBxNP-yvPL7W_n5QCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.51.33%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="643" data-original-width="1022" height="402" src="https://1.bp.blogspot.com/-63dTFuGUk6w/WX25xZWQv5I/AAAAAAAAOxo/QKC_kaLGCEYPO_Y3ArBxNP-yvPL7W_n5QCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.51.33%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-vhJ0OpW476Y/WX25xwGwPbI/AAAAAAAAOxs/Eec9Bm4Me9YkSK6m2zt_UmYvkCZ0vDaqACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.52.02%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="629" data-original-width="1027" height="390" src="https://4.bp.blogspot.com/-vhJ0OpW476Y/WX25xwGwPbI/AAAAAAAAOxs/Eec9Bm4Me9YkSK6m2zt_UmYvkCZ0vDaqACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.52.02%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-p7R18PyIcEs/WX25x4rLNvI/AAAAAAAAOxw/3AhszjD6Yb4I9GfywewAzetO06AhHQQ6ACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.52.14%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="647" data-original-width="1020" height="404" src="https://1.bp.blogspot.com/-p7R18PyIcEs/WX25x4rLNvI/AAAAAAAAOxw/3AhszjD6Yb4I9GfywewAzetO06AhHQQ6ACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.52.14%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-2ShHm_5w_p0/WX25x_pekUI/AAAAAAAAOx0/sCms3Dl3dBcCOJLQSmnDPK9riX7KT0--ACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.52.24%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="641" data-original-width="1024" height="400" src="https://2.bp.blogspot.com/-2ShHm_5w_p0/WX25x_pekUI/AAAAAAAAOx0/sCms3Dl3dBcCOJLQSmnDPK9riX7KT0--ACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.52.24%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-ZfVjDn39IcE/WX25yYE2fHI/AAAAAAAAOx4/zEGKjVEH9G027FwCULo82ybSMkFZHwpcQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.52.49%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="647" data-original-width="1023" height="404" src="https://1.bp.blogspot.com/-ZfVjDn39IcE/WX25yYE2fHI/AAAAAAAAOx4/zEGKjVEH9G027FwCULo82ybSMkFZHwpcQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.52.49%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-zLosthsHVIk/WX25ybnwLdI/AAAAAAAAOx8/_LDgxi_NG7g5zDCtz95oUpUQ88YS5NOJwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.52.58%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="645" data-original-width="1026" height="402" src="https://2.bp.blogspot.com/-zLosthsHVIk/WX25ybnwLdI/AAAAAAAAOx8/_LDgxi_NG7g5zDCtz95oUpUQ88YS5NOJwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.52.58%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-YyLcqwmgOFY/WX25yicSXSI/AAAAAAAAOyA/xwKYV-RMESQ7fL6fR-edf1SyaGyDGArHQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.53.25%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="645" data-original-width="1027" height="400" src="https://4.bp.blogspot.com/-YyLcqwmgOFY/WX25yicSXSI/AAAAAAAAOyA/xwKYV-RMESQ7fL6fR-edf1SyaGyDGArHQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.53.25%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-K_R5cGtjLl4/WX25y5oKajI/AAAAAAAAOyE/vNcoKsDRujUv9XoSg8nfH51gO_rXuVWVQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.54.04%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="643" data-original-width="1025" height="400" src="https://2.bp.blogspot.com/-K_R5cGtjLl4/WX25y5oKajI/AAAAAAAAOyE/vNcoKsDRujUv9XoSg8nfH51gO_rXuVWVQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.54.04%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-xd8wdiY6-1M/WX25zTv8cxI/AAAAAAAAOyI/xJUff_FCzlw0O_-8wlsuufo7j9j2FJ-HQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.55.46%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="619" data-original-width="1033" height="382" src="https://2.bp.blogspot.com/-xd8wdiY6-1M/WX25zTv8cxI/AAAAAAAAOyI/xJUff_FCzlw0O_-8wlsuufo7j9j2FJ-HQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.55.46%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-G60yqrHhoxE/WX25zv28guI/AAAAAAAAOyM/XRAIPjcWlccnXucqpt7bHcKg7y8C8xJfwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.56.23%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="638" data-original-width="1027" height="396" src="https://3.bp.blogspot.com/-G60yqrHhoxE/WX25zv28guI/AAAAAAAAOyM/XRAIPjcWlccnXucqpt7bHcKg7y8C8xJfwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.56.23%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-q-A28G2GUBI/WX25z0OuD_I/AAAAAAAAOyQ/N4TvyX5KDugcBJEW35l-eFvgi91Df3A2QCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.56.36%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="639" data-original-width="1024" height="398" src="https://2.bp.blogspot.com/-q-A28G2GUBI/WX25z0OuD_I/AAAAAAAAOyQ/N4TvyX5KDugcBJEW35l-eFvgi91Df3A2QCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.56.36%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-SZny1urQlBQ/WX250OM1EYI/AAAAAAAAOyU/r7tFaXKKCcktx-fQ4B-ONz4drbfGA-QAgCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.56.57%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="639" data-original-width="1025" height="398" src="https://2.bp.blogspot.com/-SZny1urQlBQ/WX250OM1EYI/AAAAAAAAOyU/r7tFaXKKCcktx-fQ4B-ONz4drbfGA-QAgCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.56.57%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-_wWikcBf_Yk/WX250aJ_fpI/AAAAAAAAOyY/m2GtlOm6VwgkasCO407_yCUDQMzKuTtxgCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.57.19%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="644" data-original-width="1023" height="402" src="https://3.bp.blogspot.com/-_wWikcBf_Yk/WX250aJ_fpI/AAAAAAAAOyY/m2GtlOm6VwgkasCO407_yCUDQMzKuTtxgCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.57.19%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-iO4soMlhUaA/WX250db-hCI/AAAAAAAAOyc/ghZjTwpk8p8iQ1kyMIlDuZINJBG6xRXRACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.57.28%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="648" data-original-width="1026" height="404" src="https://1.bp.blogspot.com/-iO4soMlhUaA/WX250db-hCI/AAAAAAAAOyc/ghZjTwpk8p8iQ1kyMIlDuZINJBG6xRXRACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.57.28%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-tgDBgHmbAxQ/WX250ss5YXI/AAAAAAAAOyg/7f9iigpCd30nNTjCmoRcTgpgGv2oWbFGACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.57.35%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="642" data-original-width="1028" height="398" src="https://2.bp.blogspot.com/-tgDBgHmbAxQ/WX250ss5YXI/AAAAAAAAOyg/7f9iigpCd30nNTjCmoRcTgpgGv2oWbFGACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.57.35%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-jv46Qrz0eEA/WX250gUZ0-I/AAAAAAAAOyo/FUhrw1rPc9QjRENc7VlBbeVywvoczfa1ACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.57.42%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="643" data-original-width="1027" height="400" src="https://1.bp.blogspot.com/-jv46Qrz0eEA/WX250gUZ0-I/AAAAAAAAOyo/FUhrw1rPc9QjRENc7VlBbeVywvoczfa1ACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.57.42%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-VzVhTviHW5Y/WX2507qnySI/AAAAAAAAOyk/slR82gTGaCoALZeCID3T2srvJQOG63NegCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.57.53%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="648" data-original-width="1021" height="406" src="https://1.bp.blogspot.com/-VzVhTviHW5Y/WX2507qnySI/AAAAAAAAOyk/slR82gTGaCoALZeCID3T2srvJQOG63NegCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.57.53%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-YvZRsTgUJYc/WX251DhRgeI/AAAAAAAAOys/zB_K6jaT8pQNMZecKfUC6bg_-RsXdaQAQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.58.05%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="642" data-original-width="1025" height="400" src="https://4.bp.blogspot.com/-YvZRsTgUJYc/WX251DhRgeI/AAAAAAAAOys/zB_K6jaT8pQNMZecKfUC6bg_-RsXdaQAQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.58.05%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-OMNCXc-X3D8/WX251S79pKI/AAAAAAAAOyw/Uuxv72uus00r51JPKEE3YPRKoSPVzkEBQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.58.16%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="650" data-original-width="1024" height="406" src="https://3.bp.blogspot.com/-OMNCXc-X3D8/WX251S79pKI/AAAAAAAAOyw/Uuxv72uus00r51JPKEE3YPRKoSPVzkEBQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.58.16%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-Fgr0BSJD-FU/WX251g3CEiI/AAAAAAAAOy0/eFM3c0R7PM89kHc1UYvFCAmrut66WllWgCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B1.58.32%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="646" data-original-width="1029" height="400" src="https://3.bp.blogspot.com/-Fgr0BSJD-FU/WX251g3CEiI/AAAAAAAAOy0/eFM3c0R7PM89kHc1UYvFCAmrut66WllWgCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B1.58.32%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-XhfUY9NvaNY/WX2512y5BsI/AAAAAAAAOy8/Sm7dEKsnxsUbC2XYNMidDDyypOwF0J4_gCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.00.06%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="640" data-original-width="1020" height="400" src="https://2.bp.blogspot.com/-XhfUY9NvaNY/WX2512y5BsI/AAAAAAAAOy8/Sm7dEKsnxsUbC2XYNMidDDyypOwF0J4_gCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.00.06%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-VNVJEODBDTA/WX252Oe0kfI/AAAAAAAAOzA/es4ts4Qw8_IhDGGiWtTawF-R8uTF_rSrwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.01.23%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="623" data-original-width="1026" height="388" src="https://1.bp.blogspot.com/-VNVJEODBDTA/WX252Oe0kfI/AAAAAAAAOzA/es4ts4Qw8_IhDGGiWtTawF-R8uTF_rSrwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.01.23%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-OvfTeOeoTGU/WX252KUoEXI/AAAAAAAAOzE/U4aswwCbjQAaUqIn6FdUxl0LH_i8iDCswCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.01.41%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="41" data-original-width="5" src="https://3.bp.blogspot.com/-OvfTeOeoTGU/WX252KUoEXI/AAAAAAAAOzE/U4aswwCbjQAaUqIn6FdUxl0LH_i8iDCswCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.01.41%2BPM.png" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-aF7lfbApRXg/WX252bDiL4I/AAAAAAAAOzI/NdBXFUstTCEvnzYAd0264eO1Q2APBAY7QCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.01.50%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="619" data-original-width="1022" height="386" src="https://1.bp.blogspot.com/-aF7lfbApRXg/WX252bDiL4I/AAAAAAAAOzI/NdBXFUstTCEvnzYAd0264eO1Q2APBAY7QCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.01.50%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-yR_vEuf3R-U/WX252iwTLiI/AAAAAAAAOzM/sCgvxlrBmac1QJrSpEXa2AOQ1vdXt4k3gCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.02.10%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="634" data-original-width="1025" height="394" src="https://2.bp.blogspot.com/-yR_vEuf3R-U/WX252iwTLiI/AAAAAAAAOzM/sCgvxlrBmac1QJrSpEXa2AOQ1vdXt4k3gCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.02.10%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-qMG3T1aLn40/WX252n9YheI/AAAAAAAAOzQ/3jijqrL0pfMF5TU5XX6Y0Dthkek7QcKpwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.02.16%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="643" data-original-width="1027" height="400" src="https://1.bp.blogspot.com/-qMG3T1aLn40/WX252n9YheI/AAAAAAAAOzQ/3jijqrL0pfMF5TU5XX6Y0Dthkek7QcKpwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.02.16%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-iCIYbWRra_Y/WX25288M6yI/AAAAAAAAOzU/_TTqcCX9AmAOVf1OCXD9DnHuKHEuRE-4gCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.02.31%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="639" data-original-width="1029" height="396" src="https://1.bp.blogspot.com/-iCIYbWRra_Y/WX25288M6yI/AAAAAAAAOzU/_TTqcCX9AmAOVf1OCXD9DnHuKHEuRE-4gCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.02.31%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-GV0mof1IOkg/WX253PG3a3I/AAAAAAAAOzY/bUBnJYeZt1Q7qEOlQ_a83LHsTulV4rNJACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.02.38%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="644" data-original-width="1024" height="402" src="https://1.bp.blogspot.com/-GV0mof1IOkg/WX253PG3a3I/AAAAAAAAOzY/bUBnJYeZt1Q7qEOlQ_a83LHsTulV4rNJACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.02.38%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-waBCmXyk4yE/WX253EAauaI/AAAAAAAAOzc/FsSBV3-J-W4ZFVh77SfZkfpa-Y82Dv16ACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.02.45%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="645" data-original-width="1025" height="402" src="https://3.bp.blogspot.com/-waBCmXyk4yE/WX253EAauaI/AAAAAAAAOzc/FsSBV3-J-W4ZFVh77SfZkfpa-Y82Dv16ACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.02.45%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-W_Kf4x9k3b0/WX253dTnPNI/AAAAAAAAOzg/-6k1ooT4y3IBnYV-5WqCsGlhJP-BEsM9gCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.02.54%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="648" data-original-width="1025" height="404" src="https://1.bp.blogspot.com/-W_Kf4x9k3b0/WX253dTnPNI/AAAAAAAAOzg/-6k1ooT4y3IBnYV-5WqCsGlhJP-BEsM9gCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.02.54%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-WLnz-3OHq2c/WX253ofducI/AAAAAAAAOzk/IrKaS0Ys7HsbLAtB9oswTOamCg5loTJVACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.03.04%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="639" data-original-width="1021" height="400" src="https://1.bp.blogspot.com/-WLnz-3OHq2c/WX253ofducI/AAAAAAAAOzk/IrKaS0Ys7HsbLAtB9oswTOamCg5loTJVACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.03.04%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-nI5P1QOxKBE/WX2536d3hOI/AAAAAAAAOzo/CGIUpHMwoE4wbYDxFXNOx8-14jj1nE9AACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.03.19%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="644" data-original-width="1027" height="400" src="https://2.bp.blogspot.com/-nI5P1QOxKBE/WX2536d3hOI/AAAAAAAAOzo/CGIUpHMwoE4wbYDxFXNOx8-14jj1nE9AACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.03.19%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-ZIZjSTXhHSU/WX254MpzarI/AAAAAAAAOzs/9D_8mKD9rQcu-QK7vnh9KiprC0FytVBCwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.03.28%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="642" data-original-width="1026" height="400" src="https://3.bp.blogspot.com/-ZIZjSTXhHSU/WX254MpzarI/AAAAAAAAOzs/9D_8mKD9rQcu-QK7vnh9KiprC0FytVBCwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.03.28%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-nHKTPYTV5fE/WX254UI87tI/AAAAAAAAOzw/YEKr0sMnLygfua3yZpS4ivgcYxZfPLolQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.05.02%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="636" data-original-width="1024" height="396" src="https://1.bp.blogspot.com/-nHKTPYTV5fE/WX254UI87tI/AAAAAAAAOzw/YEKr0sMnLygfua3yZpS4ivgcYxZfPLolQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.05.02%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-S75j1QXAqJo/WX254oF01QI/AAAAAAAAOz0/l5aeyAIslPUgaRba3qn4w75b0-_-gJkzQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.05.17%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="612" data-original-width="1023" height="382" src="https://2.bp.blogspot.com/-S75j1QXAqJo/WX254oF01QI/AAAAAAAAOz0/l5aeyAIslPUgaRba3qn4w75b0-_-gJkzQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.05.17%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-DwIVwZdk9Gg/WX254_ebzzI/AAAAAAAAOz4/LmmOqUkG1nk4NGe-MTqyiPYxnoJYI9djQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.05.23%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="637" data-original-width="1019" height="400" src="https://1.bp.blogspot.com/-DwIVwZdk9Gg/WX254_ebzzI/AAAAAAAAOz4/LmmOqUkG1nk4NGe-MTqyiPYxnoJYI9djQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.05.23%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-SIwxqLAiwfU/WX255O0J_KI/AAAAAAAAOz8/DFb1uE8jF0Ak1qJOBRoLQXoXuNC2SEmKQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.05.34%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="640" data-original-width="1024" height="400" src="https://2.bp.blogspot.com/-SIwxqLAiwfU/WX255O0J_KI/AAAAAAAAOz8/DFb1uE8jF0Ak1qJOBRoLQXoXuNC2SEmKQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.05.34%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-SQshpyC6tHE/WX255LZqgOI/AAAAAAAAO0A/8-INCaeDq-0JuyEaNzVpbKBSUwPyZKdwgCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.05.43%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="639" data-original-width="1030" height="396" src="https://2.bp.blogspot.com/-SQshpyC6tHE/WX255LZqgOI/AAAAAAAAO0A/8-INCaeDq-0JuyEaNzVpbKBSUwPyZKdwgCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.05.43%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-qIVSBjaaW2Q/WX255YLVPVI/AAAAAAAAO0E/m9RKpf7_pNcz8k33Ah-NEyUT3KxYrVW9QCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.06.15%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="626" data-original-width="1029" height="388" src="https://4.bp.blogspot.com/-qIVSBjaaW2Q/WX255YLVPVI/AAAAAAAAO0E/m9RKpf7_pNcz8k33Ah-NEyUT3KxYrVW9QCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.06.15%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-MVHQIr8jLEI/WX255SfL5NI/AAAAAAAAO0I/E9_hhMWViXkMy0yg5KQuiqZ5ogztnwZIACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.06.31%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="640" data-original-width="1026" height="398" src="https://2.bp.blogspot.com/-MVHQIr8jLEI/WX255SfL5NI/AAAAAAAAO0I/E9_hhMWViXkMy0yg5KQuiqZ5ogztnwZIACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.06.31%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-M43BAecl7y8/WX255qz7ZyI/AAAAAAAAO0M/QQEu8ShUgs0heONP-eN5f-atqKG2BobSQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.07.15%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="644" data-original-width="1027" height="400" src="https://4.bp.blogspot.com/-M43BAecl7y8/WX255qz7ZyI/AAAAAAAAO0M/QQEu8ShUgs0heONP-eN5f-atqKG2BobSQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.07.15%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-vJHGf1iYjjY/WX2558JtlNI/AAAAAAAAO0Q/7w7C_C6V9mIwA4fMMLz8YsIs6oywdbPMQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.08.02%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="643" data-original-width="1030" height="398" src="https://1.bp.blogspot.com/-vJHGf1iYjjY/WX2558JtlNI/AAAAAAAAO0Q/7w7C_C6V9mIwA4fMMLz8YsIs6oywdbPMQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.08.02%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-Dm3szp7O95c/WX2557KfR6I/AAAAAAAAO0U/oGuqFIRmx-wsuc2HzXxCPq_E5yJYLW0cwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.09.43%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="650" data-original-width="1030" height="402" src="https://1.bp.blogspot.com/-Dm3szp7O95c/WX2557KfR6I/AAAAAAAAO0U/oGuqFIRmx-wsuc2HzXxCPq_E5yJYLW0cwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.09.43%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-E6D5nRj_-IE/WX256HU4C3I/AAAAAAAAO0Y/vHIYxHS0Rdc68rT1lyVD5m48Fv8jNwfgwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.11.03%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="645" data-original-width="1033" height="398" src="https://4.bp.blogspot.com/-E6D5nRj_-IE/WX256HU4C3I/AAAAAAAAO0Y/vHIYxHS0Rdc68rT1lyVD5m48Fv8jNwfgwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.11.03%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-HC-wmOI4Utk/WX256uZrIkI/AAAAAAAAO0c/Q7vpBh7TI9IF8a5LR1X591PXZ6jMVqyFQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.12.08%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="648" data-original-width="1023" height="404" src="https://3.bp.blogspot.com/-HC-wmOI4Utk/WX256uZrIkI/AAAAAAAAO0c/Q7vpBh7TI9IF8a5LR1X591PXZ6jMVqyFQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.12.08%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-sQGFA0-JFmo/WX2569IOeZI/AAAAAAAAO0k/hMtx243zt_QdDpRBUs-ek_oZlhLtMDSNACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.12.29%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="645" data-original-width="1029" height="400" src="https://4.bp.blogspot.com/-sQGFA0-JFmo/WX2569IOeZI/AAAAAAAAO0k/hMtx243zt_QdDpRBUs-ek_oZlhLtMDSNACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.12.29%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-vK3ZhWE5zBg/WX257JjeyrI/AAAAAAAAO0g/7_ny5lXMLa0ay1xViIzojco243or9O8LgCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.12.43%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="650" data-original-width="1027" height="404" src="https://1.bp.blogspot.com/-vK3ZhWE5zBg/WX257JjeyrI/AAAAAAAAO0g/7_ny5lXMLa0ay1xViIzojco243or9O8LgCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.12.43%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-bierfptO0oQ/WX257ZpxqlI/AAAAAAAAO0o/vg0-aZBpblwnzqxadiBIA6Yyj45dqL2KACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.13.30%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="625" data-original-width="1030" height="388" src="https://4.bp.blogspot.com/-bierfptO0oQ/WX257ZpxqlI/AAAAAAAAO0o/vg0-aZBpblwnzqxadiBIA6Yyj45dqL2KACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.13.30%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-2XUzMQCctps/WX257oFlmeI/AAAAAAAAO0s/NV6s-2rdmWYlTHVKMDlBUtVQpwFaG_zkQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.14.43%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="621" data-original-width="1030" height="384" src="https://2.bp.blogspot.com/-2XUzMQCctps/WX257oFlmeI/AAAAAAAAO0s/NV6s-2rdmWYlTHVKMDlBUtVQpwFaG_zkQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.14.43%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-olru4XM7-Dc/WX257gXa2yI/AAAAAAAAO0w/5MMIna4RCxQi4QHKBAE2CxWytchkTfZRgCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.14.55%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="631" data-original-width="1036" height="388" src="https://2.bp.blogspot.com/-olru4XM7-Dc/WX257gXa2yI/AAAAAAAAO0w/5MMIna4RCxQi4QHKBAE2CxWytchkTfZRgCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.14.55%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-s2SWwgejjIs/WX258DqI3sI/AAAAAAAAO00/03D6gqq7FxAyjHIjG-POMQfjrfV-dYUxACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.15.09%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="620" data-original-width="1028" height="384" src="https://2.bp.blogspot.com/-s2SWwgejjIs/WX258DqI3sI/AAAAAAAAO00/03D6gqq7FxAyjHIjG-POMQfjrfV-dYUxACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.15.09%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-c_L52rstGG0/WX258Fg0u8I/AAAAAAAAO04/pWVw-FHMUCYjWSWzjA5nN51ApWT7A5yGACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.15.15%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="626" data-original-width="1032" height="388" src="https://2.bp.blogspot.com/-c_L52rstGG0/WX258Fg0u8I/AAAAAAAAO04/pWVw-FHMUCYjWSWzjA5nN51ApWT7A5yGACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.15.15%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-WpJWf8Jv_Kc/WX258tkfY2I/AAAAAAAAO1A/GQiYHDgK_y4EoRHfgpEzx1i7G__HZHo3ACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.15.24%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="619" data-original-width="1030" height="384" src="https://4.bp.blogspot.com/-WpJWf8Jv_Kc/WX258tkfY2I/AAAAAAAAO1A/GQiYHDgK_y4EoRHfgpEzx1i7G__HZHo3ACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.15.24%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-mklKVqKRzD8/WX258iEuRmI/AAAAAAAAO08/L6QzDNyxaYYkYXDUzrv9t7CAhGebfCPIgCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.15.35%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="626" data-original-width="1035" height="386" src="https://4.bp.blogspot.com/-mklKVqKRzD8/WX258iEuRmI/AAAAAAAAO08/L6QzDNyxaYYkYXDUzrv9t7CAhGebfCPIgCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.15.35%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-xq5-SnoUqBo/WX259LSjsVI/AAAAAAAAO1I/bBlZUlSkaPsvdn_te4w4vcdS4zkglg88ACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.15.45%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="621" data-original-width="1023" height="388" src="https://4.bp.blogspot.com/-xq5-SnoUqBo/WX259LSjsVI/AAAAAAAAO1I/bBlZUlSkaPsvdn_te4w4vcdS4zkglg88ACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.15.45%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-R6dbuXFO1VM/WX259OZM7zI/AAAAAAAAO1E/JlV7I9YovUAdtehYeFlL4JGIs__QGiUagCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.16.20%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="624" data-original-width="1037" height="384" src="https://2.bp.blogspot.com/-R6dbuXFO1VM/WX259OZM7zI/AAAAAAAAO1E/JlV7I9YovUAdtehYeFlL4JGIs__QGiUagCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.16.20%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-qzMnvth6vIo/WX259ke5t6I/AAAAAAAAO1M/-3sc_Rk8QHAbIY8aYv-SIZ7yy4L8BhsUwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.16.30%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="628" data-original-width="1032" height="388" src="https://1.bp.blogspot.com/-qzMnvth6vIo/WX259ke5t6I/AAAAAAAAO1M/-3sc_Rk8QHAbIY8aYv-SIZ7yy4L8BhsUwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.16.30%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-UCMlXg1Fwsg/WX259kYmEQI/AAAAAAAAO1U/Gs18fHHLS-c47U1dK2I0eQ88igrhJ-LzgCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.16.48%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="635" data-original-width="1023" height="396" src="https://4.bp.blogspot.com/-UCMlXg1Fwsg/WX259kYmEQI/AAAAAAAAO1U/Gs18fHHLS-c47U1dK2I0eQ88igrhJ-LzgCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.16.48%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-v5w8mkgT8ng/WX259zF_I5I/AAAAAAAAO1Q/GEyr84u3v1Atu9XxDF0lzaCqUoop3n9QACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.16.56%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="642" data-original-width="1033" height="396" src="https://1.bp.blogspot.com/-v5w8mkgT8ng/WX259zF_I5I/AAAAAAAAO1Q/GEyr84u3v1Atu9XxDF0lzaCqUoop3n9QACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.16.56%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-L941LBTvFbo/WX25-QFh7mI/AAAAAAAAO1Y/KuKXDk04pW4y5C3v8aNDB1DcNXpIK5xNACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.17.38%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="657" data-original-width="1028" height="408" src="https://4.bp.blogspot.com/-L941LBTvFbo/WX25-QFh7mI/AAAAAAAAO1Y/KuKXDk04pW4y5C3v8aNDB1DcNXpIK5xNACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.17.38%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-6kEj_b-icBI/WX25-ppvCUI/AAAAAAAAO1c/Ci9hEZuuOq8IRi6FrKp23JoMpyIJW4WiQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.17.49%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="648" data-original-width="1027" height="402" src="https://1.bp.blogspot.com/-6kEj_b-icBI/WX25-ppvCUI/AAAAAAAAO1c/Ci9hEZuuOq8IRi6FrKp23JoMpyIJW4WiQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.17.49%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-6okLUfCuPd0/WX25-75XQvI/AAAAAAAAO1g/KjMFVHdrAHUu1v0lQ2qmAI-DnvsNZx1VwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.17.55%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="644" data-original-width="1031" height="398" src="https://2.bp.blogspot.com/-6okLUfCuPd0/WX25-75XQvI/AAAAAAAAO1g/KjMFVHdrAHUu1v0lQ2qmAI-DnvsNZx1VwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.17.55%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-J-GsM5l0-Sc/WX25_IGOodI/AAAAAAAAO1k/xGe5xXfjGyM-uVDvjsZ42gfJBGXUmAmkgCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.18.04%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="656" data-original-width="1029" height="408" src="https://3.bp.blogspot.com/-J-GsM5l0-Sc/WX25_IGOodI/AAAAAAAAO1k/xGe5xXfjGyM-uVDvjsZ42gfJBGXUmAmkgCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.18.04%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-P3JQ3yCzMA4/WX25_V-PdxI/AAAAAAAAO1o/519SF80Kj3orPANzZdjkhdoQJ3qxmwMWACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.18.17%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="646" data-original-width="1035" height="398" src="https://2.bp.blogspot.com/-P3JQ3yCzMA4/WX25_V-PdxI/AAAAAAAAO1o/519SF80Kj3orPANzZdjkhdoQJ3qxmwMWACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.18.17%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-OMvNM8GWeBQ/WX25_RPxm4I/AAAAAAAAO1s/CP5N_1UzoLMETcyssOCyx7RiJXO3wyXswCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.18.27%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="638" data-original-width="1036" height="394" src="https://2.bp.blogspot.com/-OMvNM8GWeBQ/WX25_RPxm4I/AAAAAAAAO1s/CP5N_1UzoLMETcyssOCyx7RiJXO3wyXswCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.18.27%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-E4AQ5zfYpsQ/WX26APfl6pI/AAAAAAAAO1w/60zcI1F-TKcFbQ9QagXtEZQUCRVnIlOeQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.18.56%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="650" data-original-width="1024" height="406" src="https://2.bp.blogspot.com/-E4AQ5zfYpsQ/WX26APfl6pI/AAAAAAAAO1w/60zcI1F-TKcFbQ9QagXtEZQUCRVnIlOeQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.18.56%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-jBMglx0GHw8/WX26ADNvreI/AAAAAAAAO10/dsSWJZBLkhIX1CTMnKzJ2zVzq-1mylrgwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.19.24%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="722" data-original-width="1029" height="448" src="https://4.bp.blogspot.com/-jBMglx0GHw8/WX26ADNvreI/AAAAAAAAO10/dsSWJZBLkhIX1CTMnKzJ2zVzq-1mylrgwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.19.24%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-XSsUAW0Vgd0/WX26Ab_zWrI/AAAAAAAAO14/Cmhuar9VjIMRYJ-VyNWrB-NZ_iDyZxNRwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.19.48%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="639" data-original-width="1030" height="396" src="https://1.bp.blogspot.com/-XSsUAW0Vgd0/WX26Ab_zWrI/AAAAAAAAO14/Cmhuar9VjIMRYJ-VyNWrB-NZ_iDyZxNRwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.19.48%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-CPHFc1O0r0s/WX26AVjqzBI/AAAAAAAAO18/9VqVM5j39mYa_Kexp10cgG6D_bXDzWMKwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.25.14%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="625" data-original-width="1031" height="386" src="https://2.bp.blogspot.com/-CPHFc1O0r0s/WX26AVjqzBI/AAAAAAAAO18/9VqVM5j39mYa_Kexp10cgG6D_bXDzWMKwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.25.14%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-6BVBsKffCpM/WX26Aj5N8XI/AAAAAAAAO2A/edJN_Pa-D7ki-iOiEW0E5-ngZciCNcYZQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.25.29%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="650" data-original-width="1029" height="404" src="https://1.bp.blogspot.com/-6BVBsKffCpM/WX26Aj5N8XI/AAAAAAAAO2A/edJN_Pa-D7ki-iOiEW0E5-ngZciCNcYZQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.25.29%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-oFN7qndFqt8/WX26A53dPbI/AAAAAAAAO2E/8dXCAp-Kfr8u-6j39kg55vmQFpAjm-p9wCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.26.03%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="647" data-original-width="1028" height="402" src="https://1.bp.blogspot.com/-oFN7qndFqt8/WX26A53dPbI/AAAAAAAAO2E/8dXCAp-Kfr8u-6j39kg55vmQFpAjm-p9wCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.26.03%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-zuiISIPT7pM/WX26BS_6l7I/AAAAAAAAO2I/xsDFpwne9EEfnmqDZlwd7BJJk-5WgOSHACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.26.33%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="620" data-original-width="1033" height="384" src="https://2.bp.blogspot.com/-zuiISIPT7pM/WX26BS_6l7I/AAAAAAAAO2I/xsDFpwne9EEfnmqDZlwd7BJJk-5WgOSHACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.26.33%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-eQCnZsMB9bY/WX26BeUbh2I/AAAAAAAAO2M/qznYMxfLCw8Q_FzrlP5VLnuUMRH-lziDQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.26.50%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="653" data-original-width="1026" height="406" src="https://2.bp.blogspot.com/-eQCnZsMB9bY/WX26BeUbh2I/AAAAAAAAO2M/qznYMxfLCw8Q_FzrlP5VLnuUMRH-lziDQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.26.50%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-ADn3_sEBwbY/WX26BoJ6qzI/AAAAAAAAO2Q/Xv4Udg0q-f0RweCWJ6oRcUEkpV7uXGbGQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.27.03%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="635" data-original-width="1032" height="392" src="https://1.bp.blogspot.com/-ADn3_sEBwbY/WX26BoJ6qzI/AAAAAAAAO2Q/Xv4Udg0q-f0RweCWJ6oRcUEkpV7uXGbGQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.27.03%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-KAJ4etiUvgY/WX26B0LoLGI/AAAAAAAAO2U/rGRY2lR0GvI5E-FvTfdkA9q1iBhY6gEpQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.27.16%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="647" data-original-width="1027" height="402" src="https://2.bp.blogspot.com/-KAJ4etiUvgY/WX26B0LoLGI/AAAAAAAAO2U/rGRY2lR0GvI5E-FvTfdkA9q1iBhY6gEpQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.27.16%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-g6GilvrKvgA/WX26B6vdFlI/AAAAAAAAO2Y/TZVMuSJ-DnkQ-U9GcSD_EzhD088WBCU6QCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.30.06%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="645" data-original-width="1039" height="396" src="https://1.bp.blogspot.com/-g6GilvrKvgA/WX26B6vdFlI/AAAAAAAAO2Y/TZVMuSJ-DnkQ-U9GcSD_EzhD088WBCU6QCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.30.06%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-dJB5r6AGmps/WX26CL1xOVI/AAAAAAAAO2c/KKDd4D2GGXIfX912IREDHvzb177mYfN2ACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.30.20%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="626" data-original-width="1040" height="384" src="https://2.bp.blogspot.com/-dJB5r6AGmps/WX26CL1xOVI/AAAAAAAAO2c/KKDd4D2GGXIfX912IREDHvzb177mYfN2ACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.30.20%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-JNiU9qr55k8/WX26CKK2elI/AAAAAAAAO2k/-FomLPRhrXUY_Munb6jWxqBmYSdHcDXRACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.30.26%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="623" data-original-width="1033" height="384" src="https://3.bp.blogspot.com/-JNiU9qr55k8/WX26CKK2elI/AAAAAAAAO2k/-FomLPRhrXUY_Munb6jWxqBmYSdHcDXRACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.30.26%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-K1ihDre4YMY/WX26CYa33PI/AAAAAAAAO2g/CqpFh6Vxs5AyAQ9FRnwIpMus_O_vqHXEgCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.30.49%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="632" data-original-width="1028" height="392" src="https://2.bp.blogspot.com/-K1ihDre4YMY/WX26CYa33PI/AAAAAAAAO2g/CqpFh6Vxs5AyAQ9FRnwIpMus_O_vqHXEgCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.30.49%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-r9r7Atqu4OI/WX26Cjac_mI/AAAAAAAAO2o/e4Ee-3SJYQQ_eIvndvot6Z6V-TqjWWdcACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.31.58%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="640" data-original-width="1029" height="398" src="https://4.bp.blogspot.com/-r9r7Atqu4OI/WX26Cjac_mI/AAAAAAAAO2o/e4Ee-3SJYQQ_eIvndvot6Z6V-TqjWWdcACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.31.58%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-pPytcL2eJvM/WX26ClgqnEI/AAAAAAAAO2s/ZhU93tcv4PAyFpcsBW0hhgLtseZhCN_rQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.33.42%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="639" data-original-width="1023" height="398" src="https://1.bp.blogspot.com/-pPytcL2eJvM/WX26ClgqnEI/AAAAAAAAO2s/ZhU93tcv4PAyFpcsBW0hhgLtseZhCN_rQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.33.42%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-w_vhGeCUiNI/WX26C4bhvlI/AAAAAAAAO2w/qId4VR_tB9c1gjefUphzClsy6zIe9eirQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.34.09%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="645" data-original-width="1028" height="400" src="https://3.bp.blogspot.com/-w_vhGeCUiNI/WX26C4bhvlI/AAAAAAAAO2w/qId4VR_tB9c1gjefUphzClsy6zIe9eirQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.34.09%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-rF7gkOscn2Q/WX26DIGwEpI/AAAAAAAAO20/5qLMtNakqEk4Vy-kB2Zr2XGYkBWkvlsLQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.34.19%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="640" data-original-width="1038" height="394" src="https://3.bp.blogspot.com/-rF7gkOscn2Q/WX26DIGwEpI/AAAAAAAAO20/5qLMtNakqEk4Vy-kB2Zr2XGYkBWkvlsLQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.34.19%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-y8Lw4YFta_Y/WX26DH-oRTI/AAAAAAAAO24/M2Kv2ucbHGgPFCHmvDuzzU3uZJ8V2V7pACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.34.55%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="651" data-original-width="1027" height="404" src="https://2.bp.blogspot.com/-y8Lw4YFta_Y/WX26DH-oRTI/AAAAAAAAO24/M2Kv2ucbHGgPFCHmvDuzzU3uZJ8V2V7pACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.34.55%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-Q2D-keBeg7E/WX26DK-MDoI/AAAAAAAAO28/qrEg1BJqIpEI54oS_3PWg3PgeK2JFpjMgCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.36.51%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="644" data-original-width="1029" height="400" src="https://1.bp.blogspot.com/-Q2D-keBeg7E/WX26DK-MDoI/AAAAAAAAO28/qrEg1BJqIpEI54oS_3PWg3PgeK2JFpjMgCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.36.51%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-6IeBY6IGHW0/WX26DcZWzRI/AAAAAAAAO3A/RzYxzBGI_2A1EgC_0xV0VMsFBdi7VdY5gCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.38.46%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="649" data-original-width="1028" height="404" src="https://1.bp.blogspot.com/-6IeBY6IGHW0/WX26DcZWzRI/AAAAAAAAO3A/RzYxzBGI_2A1EgC_0xV0VMsFBdi7VdY5gCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.38.46%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-R31uXRsi42o/WX26DSkZknI/AAAAAAAAO3E/WwZY7UJH2YQoeo_j4aBL-rFHC6v1CeWSwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.41.35%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="653" data-original-width="1038" height="402" src="https://3.bp.blogspot.com/-R31uXRsi42o/WX26DSkZknI/AAAAAAAAO3E/WwZY7UJH2YQoeo_j4aBL-rFHC6v1CeWSwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.41.35%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-up06999IXdY/WX26DxMlYHI/AAAAAAAAO3Q/WXBwLBUzg9guFkBBn_5Z8c6taCIDb5MPACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.42.12%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="644" data-original-width="1024" height="402" src="https://1.bp.blogspot.com/-up06999IXdY/WX26DxMlYHI/AAAAAAAAO3Q/WXBwLBUzg9guFkBBn_5Z8c6taCIDb5MPACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.42.12%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-yvpHXLwcNA4/WX26D_l85iI/AAAAAAAAO3I/IPG_KLXs9-oxgj666L0YEub9Ggdj7ofyACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.49.27%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="647" data-original-width="1023" height="404" src="https://1.bp.blogspot.com/-yvpHXLwcNA4/WX26D_l85iI/AAAAAAAAO3I/IPG_KLXs9-oxgj666L0YEub9Ggdj7ofyACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.49.27%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-97w9lMlqwgg/WX26DxS9EvI/AAAAAAAAO3M/CNNzFVJTBWAQWfocSNqLpGK_-EDwBEYPACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.50.12%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="642" data-original-width="1027" height="400" src="https://3.bp.blogspot.com/-97w9lMlqwgg/WX26DxS9EvI/AAAAAAAAO3M/CNNzFVJTBWAQWfocSNqLpGK_-EDwBEYPACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.50.12%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-V3eKzMKce7M/WX26EAhFQJI/AAAAAAAAO3U/L35-rcBZ6Dsa2xPVY7zJ06cdPO5gEx0sACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.50.54%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="648" data-original-width="1026" height="404" src="https://4.bp.blogspot.com/-V3eKzMKce7M/WX26EAhFQJI/AAAAAAAAO3U/L35-rcBZ6Dsa2xPVY7zJ06cdPO5gEx0sACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.50.54%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-pEWkegA-VRg/WX26EUkMMWI/AAAAAAAAO3Y/boqkZ34e7IgqP3ZgFJxtrKy5-wObOYFdACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.54.53%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="646" data-original-width="1028" height="402" src="https://4.bp.blogspot.com/-pEWkegA-VRg/WX26EUkMMWI/AAAAAAAAO3Y/boqkZ34e7IgqP3ZgFJxtrKy5-wObOYFdACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.54.53%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-cVHbBAxZ0Dw/WX26Ee-X4MI/AAAAAAAAO3c/Q_c2Jk9bIb8fcJno60WZgy59sjaYQtztQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.55.03%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="638" data-original-width="1030" height="396" src="https://1.bp.blogspot.com/-cVHbBAxZ0Dw/WX26Ee-X4MI/AAAAAAAAO3c/Q_c2Jk9bIb8fcJno60WZgy59sjaYQtztQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.55.03%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-j-lsLaHwKg0/WX26EkjjL1I/AAAAAAAAO3g/8Q8kBsZ-lKQa76TEJSXVzTbs6XhLikifwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.55.38%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="652" data-original-width="1024" height="406" src="https://2.bp.blogspot.com/-j-lsLaHwKg0/WX26EkjjL1I/AAAAAAAAO3g/8Q8kBsZ-lKQa76TEJSXVzTbs6XhLikifwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.55.38%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-jsBUxQVqUl4/WX26FYbAICI/AAAAAAAAO3k/5jWcfQ_dvLEve5tj0sY-u8z6X0TOM6GZwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.55.47%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="643" data-original-width="1028" height="400" src="https://1.bp.blogspot.com/-jsBUxQVqUl4/WX26FYbAICI/AAAAAAAAO3k/5jWcfQ_dvLEve5tj0sY-u8z6X0TOM6GZwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.55.47%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-zxGgr9JfRvM/WX26FxRH37I/AAAAAAAAO3s/gWydjA4AG1UQThPfxHzjvuSI2KMhW4XLQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.56.06%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="653" data-original-width="1029" height="406" src="https://2.bp.blogspot.com/-zxGgr9JfRvM/WX26FxRH37I/AAAAAAAAO3s/gWydjA4AG1UQThPfxHzjvuSI2KMhW4XLQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.56.06%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-9w3O2A7k6gY/WX26F9BwsNI/AAAAAAAAO3o/GPQGye7WPDwyWeSEBg6TvFC7aRM_7ha2gCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.56.30%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="642" data-original-width="1031" height="398" src="https://1.bp.blogspot.com/-9w3O2A7k6gY/WX26F9BwsNI/AAAAAAAAO3o/GPQGye7WPDwyWeSEBg6TvFC7aRM_7ha2gCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.56.30%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-6BVDQevbVwA/WX26GIHpPII/AAAAAAAAO3w/_G4hLG9ZED4nBnq4Ytqb9lBfbQtv7s4jACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.56.49%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="650" data-original-width="1035" height="400" src="https://1.bp.blogspot.com/-6BVDQevbVwA/WX26GIHpPII/AAAAAAAAO3w/_G4hLG9ZED4nBnq4Ytqb9lBfbQtv7s4jACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.56.49%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-_KsrooqJ7KQ/WX26GSYLGpI/AAAAAAAAO30/Ic6Vk3PsrxsYWr8RVi4D3p1DRVNm04NpwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.57.13%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="644" data-original-width="1029" height="400" src="https://2.bp.blogspot.com/-_KsrooqJ7KQ/WX26GSYLGpI/AAAAAAAAO30/Ic6Vk3PsrxsYWr8RVi4D3p1DRVNm04NpwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.57.13%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-ZRFcZIsRMpQ/WX26GkvH8DI/AAAAAAAAO34/i7GZc7ZjF6ALmukfPHU7jC-NT9f0snMegCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.57.22%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="650" data-original-width="1029" height="404" src="https://1.bp.blogspot.com/-ZRFcZIsRMpQ/WX26GkvH8DI/AAAAAAAAO34/i7GZc7ZjF6ALmukfPHU7jC-NT9f0snMegCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.57.22%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-ivw3LZD4IuI/WX26GlBthBI/AAAAAAAAO38/UGvP1xxio_g0A7afnwtHBzg36TwDr2G2gCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.58.55%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="656" data-original-width="1035" height="404" src="https://4.bp.blogspot.com/-ivw3LZD4IuI/WX26GlBthBI/AAAAAAAAO38/UGvP1xxio_g0A7afnwtHBzg36TwDr2G2gCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.58.55%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-Aq_JspUEyqc/WX26G82ZtdI/AAAAAAAAO4A/gzJK3aDoH54hc_gpCBye5zMHDcch3NbzgCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B2.59.13%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="640" data-original-width="1025" height="398" src="https://2.bp.blogspot.com/-Aq_JspUEyqc/WX26G82ZtdI/AAAAAAAAO4A/gzJK3aDoH54hc_gpCBye5zMHDcch3NbzgCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B2.59.13%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-68uY6HJ91xQ/WX26G0aiIII/AAAAAAAAO4E/OJEZGb2dQQsMk8Sc4n93wkeCIoEMqI6fwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B3.00.10%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="652" data-original-width="1032" height="404" src="https://1.bp.blogspot.com/-68uY6HJ91xQ/WX26G0aiIII/AAAAAAAAO4E/OJEZGb2dQQsMk8Sc4n93wkeCIoEMqI6fwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B3.00.10%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-VJmVyaX7JHY/WX26G2cmP1I/AAAAAAAAO4I/7o5dXfMqcSgAKc9C2bkJDbQdoPuqADcvACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B3.00.37%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="644" data-original-width="1029" height="400" src="https://1.bp.blogspot.com/-VJmVyaX7JHY/WX26G2cmP1I/AAAAAAAAO4I/7o5dXfMqcSgAKc9C2bkJDbQdoPuqADcvACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B3.00.37%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-iD_48L04AF4/WX26HKjs8VI/AAAAAAAAO4M/wtWuPL3WoVcpeBJGdkDV0knJtmEZH0aBwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B3.01.00%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="641" data-original-width="1032" height="396" src="https://4.bp.blogspot.com/-iD_48L04AF4/WX26HKjs8VI/AAAAAAAAO4M/wtWuPL3WoVcpeBJGdkDV0knJtmEZH0aBwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B3.01.00%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-CaXJf9Go9wg/WX26Haqkg5I/AAAAAAAAO4Q/5bGxXZKH4-M2sKuJii8BEOPgc2jPuqwdwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B3.04.48%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="705" data-original-width="1025" height="440" src="https://2.bp.blogspot.com/-CaXJf9Go9wg/WX26Haqkg5I/AAAAAAAAO4Q/5bGxXZKH4-M2sKuJii8BEOPgc2jPuqwdwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B3.04.48%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-5E68zfqjH1M/WX26HXEZ45I/AAAAAAAAO4U/NLBVH1mUS7ki74zbUDf1Zo6RMUFcvQr9ACLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B3.06.06%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="706" data-original-width="1023" height="440" src="https://3.bp.blogspot.com/-5E68zfqjH1M/WX26HXEZ45I/AAAAAAAAO4U/NLBVH1mUS7ki74zbUDf1Zo6RMUFcvQr9ACLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B3.06.06%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-hDUckJZiEfM/WX26HumJ2NI/AAAAAAAAO4Y/Ul1EKMx_eVg2XXgi2rKkDSznLfiwwqbGQCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B3.06.19%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="707" data-original-width="1023" height="442" src="https://4.bp.blogspot.com/-hDUckJZiEfM/WX26HumJ2NI/AAAAAAAAO4Y/Ul1EKMx_eVg2XXgi2rKkDSznLfiwwqbGQCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B3.06.19%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-aClK535K1I4/WX26H1NIjnI/AAAAAAAAO4c/JWWoDimZUScxHrTLr1Cxg0kj0ywD7_45QCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B3.06.34%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="643" data-original-width="1023" height="402" src="https://3.bp.blogspot.com/-aClK535K1I4/WX26H1NIjnI/AAAAAAAAO4c/JWWoDimZUScxHrTLr1Cxg0kj0ywD7_45QCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B3.06.34%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-3gk0zOLRKs0/WX26HwCjUeI/AAAAAAAAO4g/F2ZvSU4jWGchDp91_cOnCJLzzAG2GOo5gCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B3.07.14%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="613" data-original-width="1028" height="380" src="https://1.bp.blogspot.com/-3gk0zOLRKs0/WX26HwCjUeI/AAAAAAAAO4g/F2ZvSU4jWGchDp91_cOnCJLzzAG2GOo5gCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B3.07.14%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-PHA5enC6E_Y/WX26IMYnQpI/AAAAAAAAO4k/yhxd1Gyl3U4Hk1Q0BTb71D3qyJR5CspOwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B3.07.39%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="644" data-original-width="1030" height="400" src="https://2.bp.blogspot.com/-PHA5enC6E_Y/WX26IMYnQpI/AAAAAAAAO4k/yhxd1Gyl3U4Hk1Q0BTb71D3qyJR5CspOwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B3.07.39%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-W99Ump3Mmv8/WX26IBGdxhI/AAAAAAAAO4o/DCgHVBdvKH4qKhLVByG0UJPMEhiKZ-rrgCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B3.07.53%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="627" data-original-width="1040" height="384" src="https://2.bp.blogspot.com/-W99Ump3Mmv8/WX26IBGdxhI/AAAAAAAAO4o/DCgHVBdvKH4qKhLVByG0UJPMEhiKZ-rrgCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B3.07.53%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-BxCRSVaYN2Q/WX26IXTgTiI/AAAAAAAAO4s/5_311sP49uQRlI-86xDfwOnG1lhR9iikwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B3.08.06%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="642" data-original-width="1032" height="398" src="https://1.bp.blogspot.com/-BxCRSVaYN2Q/WX26IXTgTiI/AAAAAAAAO4s/5_311sP49uQRlI-86xDfwOnG1lhR9iikwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B3.08.06%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-nWptaVBRXoU/WX26IkR6X4I/AAAAAAAAO4w/S9WEGCt23i8byQ2ybExCdAxO_T5uS4qIwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B3.08.18%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="624" data-original-width="1032" height="386" src="https://2.bp.blogspot.com/-nWptaVBRXoU/WX26IkR6X4I/AAAAAAAAO4w/S9WEGCt23i8byQ2ybExCdAxO_T5uS4qIwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B3.08.18%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-y6uuTNovt1k/WX26Ild4Q0I/AAAAAAAAO40/54fFd-h2Ih8zyf2bDuipz5LuSJZOEGSMwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B3.08.41%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="637" data-original-width="1028" height="396" src="https://2.bp.blogspot.com/-y6uuTNovt1k/WX26Ild4Q0I/AAAAAAAAO40/54fFd-h2Ih8zyf2bDuipz5LuSJZOEGSMwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B3.08.41%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-DD781Uzl4YY/WX26Iy5AOgI/AAAAAAAAO44/780OMwueBZQSM7KcL97x5AxkHmylHydnwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B3.09.13%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="701" data-original-width="1019" height="440" src="https://3.bp.blogspot.com/-DD781Uzl4YY/WX26Iy5AOgI/AAAAAAAAO44/780OMwueBZQSM7KcL97x5AxkHmylHydnwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B3.09.13%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-IWscUbn08-A/WX26JKlZ42I/AAAAAAAAO48/oz06Tb1pnwsGC8m-CxdGb4ZmrV3q5a4gwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B3.09.29%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="711" data-original-width="1034" height="440" src="https://3.bp.blogspot.com/-IWscUbn08-A/WX26JKlZ42I/AAAAAAAAO48/oz06Tb1pnwsGC8m-CxdGb4ZmrV3q5a4gwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B3.09.29%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-cmEjLXXj7-c/WX26JG_FJOI/AAAAAAAAO5A/H378RF-TgKYWvpqEgWocw6mcwp2bre_mgCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B3.09.41%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="640" data-original-width="1029" height="398" src="https://2.bp.blogspot.com/-cmEjLXXj7-c/WX26JG_FJOI/AAAAAAAAO5A/H378RF-TgKYWvpqEgWocw6mcwp2bre_mgCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B3.09.41%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-ajtQEl18bAU/WX26JPn1D4I/AAAAAAAAO5E/Gtd_cJg_260i-qNq_jRClAgNBGuTlnuFwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B3.09.53%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="644" data-original-width="1031" height="398" src="https://3.bp.blogspot.com/-ajtQEl18bAU/WX26JPn1D4I/AAAAAAAAO5E/Gtd_cJg_260i-qNq_jRClAgNBGuTlnuFwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B3.09.53%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-PwU4sVBZstk/WX26JYJ46EI/AAAAAAAAO5I/dBcq3iA3rYQXQAmCa_SurFbblLtkRMVugCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B3.10.46%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="647" data-original-width="1030" height="402" src="https://2.bp.blogspot.com/-PwU4sVBZstk/WX26JYJ46EI/AAAAAAAAO5I/dBcq3iA3rYQXQAmCa_SurFbblLtkRMVugCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B3.10.46%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-1LzvkNZk1k4/WX26Jn-WCKI/AAAAAAAAO5M/w1DKQVLKtA4_Bck8yyIdX5bLjjjNycpBwCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B3.11.10%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="647" data-original-width="1036" height="398" src="https://2.bp.blogspot.com/-1LzvkNZk1k4/WX26Jn-WCKI/AAAAAAAAO5M/w1DKQVLKtA4_Bck8yyIdX5bLjjjNycpBwCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B3.11.10%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-2yL9KsaNN8Q/WX26J45kHrI/AAAAAAAAO5Q/jbnHOUBtDTAO-FaKIojb20BV-oCobcvQgCLcBGAs/s1600/Screen%2BShot%2B2017-07-26%2Bat%2B3.15.13%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="645" data-original-width="1031" height="400" src="https://2.bp.blogspot.com/-2yL9KsaNN8Q/WX26J45kHrI/AAAAAAAAO5Q/jbnHOUBtDTAO-FaKIojb20BV-oCobcvQgCLcBGAs/s640/Screen%2BShot%2B2017-07-26%2Bat%2B3.15.13%2BPM.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-uHPvv_PWMSg/WX27lyQcZ4I/AAAAAAAAO5Y/TybCufECCdEdpOdUEoRZaEDWaYzfwoM4wCEwYBhgL/s1600/ODAPSTRScreenShot2017-07-28%2Bat%2B8.30.14%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1043" data-original-width="1600" src="https://2.bp.blogspot.com/-uHPvv_PWMSg/WX27lyQcZ4I/AAAAAAAAO5Y/TybCufECCdEdpOdUEoRZaEDWaYzfwoM4wCEwYBhgL/s1600/ODAPSTRScreenShot2017-07-28%2Bat%2B8.30.14%2BPM.png" /></a></div><div class="separator" style="clear: both; text-align: center;"></div><br /><div class="separator" style="clear: both; text-align: center;"></div><br /><style><!-- /* Font Definitions */ @font-face {font-family:Arial; panose-1:2 11 6 4 2 2 2 2 2 4; mso-font-charset:0; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:-536859905 -1073711037 9 0 511 0;} @font-face {font-family:"Courier New"; panose-1:2 7 3 9 2 2 5 2 4 4; mso-font-charset:0; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:-536859905 -1073711037 9 0 511 0;} @font-face {font-family:Times; panose-1:2 0 5 0 0 0 0 0 0 0; mso-font-charset:0; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 0 0 0 1 0;} @font-face {font-family:Wingdings; panose-1:5 0 0 0 0 0 0 0 0 0; mso-font-charset:2; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face {font-family:"MS 明朝"; mso-font-charset:78; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:-536870145 1791491579 18 0 131231 0;} @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:0; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:-536870145 1107305727 0 0 415 0;} @font-face {font-family:Cambria; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:0; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:-536870145 1073743103 0 0 415 0;} @font-face {font-family:Garamond; panose-1:2 2 4 4 3 3 1 1 8 3; mso-font-charset:0; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 0 0 0 1 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:Cambria; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS 明朝"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph {mso-style-priority:34; mso-style-unhide:no; mso-style-qformat:yes; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:.5in; margin-bottom:.0001pt; mso-add-space:auto; mso-pagination:widow-orphan; font-size:12.0pt; font-family:Cambria; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS 明朝"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst {mso-style-priority:34; mso-style-unhide:no; mso-style-qformat:yes; mso-style-type:export-only; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:.5in; margin-bottom:.0001pt; mso-add-space:auto; mso-pagination:widow-orphan; font-size:12.0pt; font-family:Cambria; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS 明朝"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle {mso-style-priority:34; mso-style-unhide:no; mso-style-qformat:yes; mso-style-type:export-only; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:.5in; margin-bottom:.0001pt; mso-add-space:auto; mso-pagination:widow-orphan; font-size:12.0pt; font-family:Cambria; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS 明朝"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast {mso-style-priority:34; mso-style-unhide:no; mso-style-qformat:yes; mso-style-type:export-only; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:.5in; margin-bottom:.0001pt; mso-add-space:auto; mso-pagination:widow-orphan; font-size:12.0pt; font-family:Cambria; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS 明朝"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; font-family:Cambria; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS 明朝"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} @page WordSection1 {size:8.5in 11.0in; margin:1.0in 1.25in 1.0in 1.25in; mso-header-margin:.5in; mso-footer-margin:.5in; mso-paper-source:0;} div.WordSection1 {page:WordSection1;} /* List Definitions */ @list l0 {mso-list-id:1; mso-list-type:hybrid; mso-list-template-ids:1 1 -1 -1 -1 -1 -1 -1 -1 -1;} @list l0:level1 {mso-level-number-format:bullet; mso-level-text:•; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in;} @list l0:level2 {mso-level-start-at:0; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0in; text-indent:0in;} @list l0:level3 {mso-level-start-at:0; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0in; text-indent:0in;} @list l0:level4 {mso-level-start-at:0; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0in; text-indent:0in;} @list l0:level5 {mso-level-start-at:0; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0in; text-indent:0in;} @list l0:level6 {mso-level-start-at:0; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0in; text-indent:0in;} @list l0:level7 {mso-level-start-at:0; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0in; text-indent:0in;} @list l0:level8 {mso-level-start-at:0; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0in; text-indent:0in;} @list l0:level9 {mso-level-start-at:0; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0in; text-indent:0in;} @list l1 {mso-list-id:1143498977; mso-list-type:hybrid; mso-list-template-ids:-1535625256 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l1:level1 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Symbol;} @list l1:level2 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:"Courier New"; mso-bidi-font-family:"Times New Roman";} @list l1:level3 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Wingdings;} @list l1:level4 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Symbol;} @list l1:level5 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:"Courier New"; mso-bidi-font-family:"Times New Roman";} @list l1:level6 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Wingdings;} @list l1:level7 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Symbol;} @list l1:level8 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:"Courier New"; mso-bidi-font-family:"Times New Roman";} @list l1:level9 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Wingdings;} @list l2 {mso-list-id:1805544487; mso-list-type:hybrid; mso-list-template-ids:-1124985078 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l2:level1 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Symbol;} @list l2:level2 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:"Courier New"; mso-bidi-font-family:"Times New Roman";} @list l2:level3 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Wingdings;} @list l2:level4 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Symbol;} @list l2:level5 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:"Courier New"; mso-bidi-font-family:"Times New Roman";} @list l2:level6 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Wingdings;} @list l2:level7 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Symbol;} @list l2:level8 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:"Courier New"; mso-bidi-font-family:"Times New Roman";} @list l2:level9 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Wingdings;} ol {margin-bottom:0in;} ul {margin-bottom:0in;} </style> --&gt;<style><!-- /* Font Definitions */ @font-face {font-family:Arial; panose-1:2 11 6 4 2 2 2 2 2 4; mso-font-charset:0; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:-536859905 -1073711037 9 0 511 0;} @font-face {font-family:"Courier New"; panose-1:2 7 3 9 2 2 5 2 4 4; mso-font-charset:0; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:-536859905 -1073711037 9 0 511 0;} @font-face {font-family:Times; panose-1:2 0 5 0 0 0 0 0 0 0; mso-font-charset:0; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 0 0 0 1 0;} @font-face {font-family:Wingdings; panose-1:5 0 0 0 0 0 0 0 0 0; mso-font-charset:2; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face {font-family:"MS 明朝"; mso-font-charset:78; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:-536870145 1791491579 18 0 131231 0;} @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:0; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:-536870145 1107305727 0 0 415 0;} @font-face {font-family:Cambria; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:0; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:-536870145 1073743103 0 0 415 0;} @font-face {font-family:Garamond; panose-1:2 2 4 4 3 3 1 1 8 3; mso-font-charset:0; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 0 0 0 1 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:Cambria; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS 明朝"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph {mso-style-priority:34; mso-style-unhide:no; mso-style-qformat:yes; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:.5in; margin-bottom:.0001pt; mso-add-space:auto; mso-pagination:widow-orphan; font-size:12.0pt; font-family:Cambria; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS 明朝"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst {mso-style-priority:34; mso-style-unhide:no; mso-style-qformat:yes; mso-style-type:export-only; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:.5in; margin-bottom:.0001pt; mso-add-space:auto; mso-pagination:widow-orphan; font-size:12.0pt; font-family:Cambria; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS 明朝"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle {mso-style-priority:34; mso-style-unhide:no; mso-style-qformat:yes; mso-style-type:export-only; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:.5in; margin-bottom:.0001pt; mso-add-space:auto; mso-pagination:widow-orphan; font-size:12.0pt; font-family:Cambria; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS 明朝"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast {mso-style-priority:34; mso-style-unhide:no; mso-style-qformat:yes; mso-style-type:export-only; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:.5in; margin-bottom:.0001pt; mso-add-space:auto; mso-pagination:widow-orphan; font-size:12.0pt; font-family:Cambria; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS 明朝"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; font-family:Cambria; mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"MS 明朝"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Cambria; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} @page WordSection1 {size:8.5in 11.0in; margin:1.0in 1.25in 1.0in 1.25in; mso-header-margin:.5in; mso-footer-margin:.5in; mso-paper-source:0;} div.WordSection1 {page:WordSection1;} /* List Definitions */ @list l0 {mso-list-id:1; mso-list-type:hybrid; mso-list-template-ids:1 1 -1 -1 -1 -1 -1 -1 -1 -1;} @list l0:level1 {mso-level-number-format:bullet; mso-level-text:•; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in;} @list l0:level2 {mso-level-start-at:0; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0in; text-indent:0in;} @list l0:level3 {mso-level-start-at:0; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0in; text-indent:0in;} @list l0:level4 {mso-level-start-at:0; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0in; text-indent:0in;} @list l0:level5 {mso-level-start-at:0; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0in; text-indent:0in;} @list l0:level6 {mso-level-start-at:0; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0in; text-indent:0in;} @list l0:level7 {mso-level-start-at:0; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0in; text-indent:0in;} @list l0:level8 {mso-level-start-at:0; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0in; text-indent:0in;} @list l0:level9 {mso-level-start-at:0; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0in; text-indent:0in;} @list l1 {mso-list-id:1143498977; mso-list-type:hybrid; mso-list-template-ids:-1535625256 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l1:level1 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Symbol;} @list l1:level2 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:"Courier New"; mso-bidi-font-family:"Times New Roman";} @list l1:level3 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Wingdings;} @list l1:level4 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Symbol;} @list l1:level5 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:"Courier New"; mso-bidi-font-family:"Times New Roman";} @list l1:level6 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Wingdings;} @list l1:level7 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Symbol;} @list l1:level8 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:"Courier New"; mso-bidi-font-family:"Times New Roman";} @list l1:level9 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Wingdings;} @list l2 {mso-list-id:1805544487; mso-list-type:hybrid; mso-list-template-ids:-1124985078 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l2:level1 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Symbol;} @list l2:level2 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:"Courier New"; mso-bidi-font-family:"Times New Roman";} @list l2:level3 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Wingdings;} @list l2:level4 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Symbol;} @list l2:level5 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:"Courier New"; mso-bidi-font-family:"Times New Roman";} @list l2:level6 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Wingdings;} @list l2:level7 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Symbol;} @list l2:level8 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:"Courier New"; mso-bidi-font-family:"Times New Roman";} @list l2:level9 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Wingdings;} ol {margin-bottom:0in;} ul {margin-bottom:0in;} </style><br />--&gt; Anthony D Noriega tag:blogger.com,1999:blog-4535123449935735221.post-8437118860064560633 Fri Aug 11 2017 17:10:00 GMT-0400 (EDT) SQL Developer 17.2: Publish RESTful Service (GET) based on a Data Grid http://www.thatjeffsmith.com/archive/2017/08/sql-developer-17-2-publish-restful-service-get-based-on-a-data-grid/ <p>Think building REST Services for Oracle Database is hard? </p> <p>Tooling around SQL Developer, browsing data, and thought to yourself, that would make a great Web Service?</p> <p>Now, you can quickly publish the query behind a grid to a new or existing ORDS Module.</p> <p>Just right-click! (well wait a second, you need <a href="http://www.thatjeffsmith.com/archive/2015/04/deploying-oracle-rest-data-services-from-oracle-sql-developer/" target="_blank">ORDS installed and configured for your database</a>. And the user/schema should be REST enabled too.)</p> <div id="attachment_6291" style="width: 960px" class="wp-caption aligncenter"><a href="http://www.thatjeffsmith.com/wp-content/uploads/2017/08/grid-rest1.png"><img src="http://www.thatjeffsmith.com/wp-content/uploads/2017/08/grid-rest1.png" alt="" width="950" height="557" class="size-full wp-image-6291" /></a><p class="wp-caption-text">This is the Sessions report.</p></div> <p>Which brings up this dialog&#8230;</p> <div id="attachment_6292" style="width: 850px" class="wp-caption aligncenter"><a href="http://www.thatjeffsmith.com/wp-content/uploads/2017/08/grid-rest2.png"><img src="http://www.thatjeffsmith.com/wp-content/uploads/2017/08/grid-rest2-1024x585.png" alt="" width="840" height="480" class="size-large wp-image-6292" /></a><p class="wp-caption-text">Put it in a new Module (collection), or&#8230;</p></div> <p>&#8230;add it an existing one.</p> <div id="attachment_6293" style="width: 527px" class="wp-caption aligncenter"><a href="http://www.thatjeffsmith.com/wp-content/uploads/2017/08/grid-rest3.png"><img src="http://www.thatjeffsmith.com/wp-content/uploads/2017/08/grid-rest3.png" alt="" width="517" height="288" class="size-full wp-image-6293" /></a><p class="wp-caption-text">Pick one!</p></div> <p>And of course decide on the other things. What&#8217;s the URI going to be, pagination size, etc.</p> <!-- Easy AdSense V7.43 --> <!-- [midtext: 1 urCount: 1 urMax: 0] --> <div class="ezAdsense adsense adsense-midtext" style="float:left;margin:12px;"><script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- 336-rectangle --> <ins class="adsbygoogle" style="display:inline-block;width:336px;height:280px" data-ad-client="ca-pub-1495560488595385" data-ad-slot="5904412551"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script></div> <!-- Easy AdSense V7.43 --> <p>Before you click OK/Publish, please review the code.</p> <div id="attachment_6294" style="width: 984px" class="wp-caption aligncenter"><a href="http://www.thatjeffsmith.com/wp-content/uploads/2017/08/grid-rest-4.png"><img src="http://www.thatjeffsmith.com/wp-content/uploads/2017/08/grid-rest-4.png" alt="" width="974" height="734" class="size-full wp-image-6294" /></a><p class="wp-caption-text">You don&#8217;t have to use a GUI, ever with ORDS, but it sure can make it more fun.</p></div> <p>And you&#8217;re good to go.</p> <p>But let&#8217;s go look at it, and run it.</p> <div id="attachment_6295" style="width: 850px" class="wp-caption aligncenter"><a href="http://www.thatjeffsmith.com/wp-content/uploads/2017/08/grid-rest5.png"><img src="http://www.thatjeffsmith.com/wp-content/uploads/2017/08/grid-rest5-1024x713.png" alt="" width="840" height="585" class="size-large wp-image-6295" /></a><p class="wp-caption-text">You can add parameters, change the code, whatever at this point.</p></div> <p>And in my browser, here&#8217;s a list of those sessions.</p> <div id="attachment_6296" style="width: 832px" class="wp-caption aligncenter"><a href="http://www.thatjeffsmith.com/wp-content/uploads/2017/08/grid-6.png"><img src="http://www.thatjeffsmith.com/wp-content/uploads/2017/08/grid-6.png" alt="" width="822" height="762" class="size-full wp-image-6296" /></a><p class="wp-caption-text">Cool stuff.</p></div> <p>I think that&#8217;s pretty easy. And we&#8217;re looking to make this even easier. One of our internal users here at Oracle had this to say&#8230;</p> <blockquote><p>Thanks for the link, I installed on my dev box. Looks good. Thanks ever so much for the quick response and thanks for all you are doing with ORDS. It makes creating web services the easiest thing in the world!</p></blockquote> <h3>More Fun?</h3> <p>I could change up the query to return some <a href="http://www.thatjeffsmith.com/archive/2017/05/ords-restful-services-and-uri/" target="_blank">$location URIs</a> that would pull the waits for a specific session or get the PLAN for the current or prev SQL_ID.</p> thatjeffsmith http://www.thatjeffsmith.com/?p=6290 Fri Aug 11 2017 12:56:52 GMT-0400 (EDT) Oracle Mobile Cloud Service (MCS): Overview of integration options https://technology.amis.nl/2017/08/11/oracle-mobile-cloud-service-mcs-overview-of-integration-options/ <p>Oracle Mobile Cloud Service has a lot of options which allows it to integrate with other services and systems. Since it runs JavaScript on Node.js for custom APIs, it is very flexible.</p> <p>Some features allow it to extent its own functionality such as the Firebase configuration option to send notifications to mobile devices, while for example the connectors allow wizard driven integration with other systems. The custom API functionality running on a recent Node.js version ties it all together. In this blog article I&#8217;ll provide a quick overview and some background of the integration options of MCS.</p> <p>MCS is very well documented <a href="http://docs.oracle.com/en/cloud/paas/mobile-cloud/mcsua/">here</a> and there are many YouTube video&#8217;s available explaining/demonstrating various MCS features <a href="https://www.youtube.com/user/OracleMobilePlatform">here</a>. So if you want to know more, I suggest looking at those.</p> <h1>Some recent features</h1> <p>Oracle is working hard on improving and expanding MCS functionality. For the latest improvements to the service see <a href="https://docs.oracle.com/en/cloud/paas/mobile-cloud/mcswn/index.html">the following page</a>. Some highlights I personally appreciate of the past half year which will also get some attention in this blog:</p> <ul> <li>Zero footprint SSO (June 2017)</li> <li>Swagger support in addition to RAML for the REST connector (April 2017)</li> <li>Node.js version v6.10.0 support (April 2017)</li> <li>Support for Firebase (FCM) to replace GCM (December 2016)</li> <li>Support for third party tokens (December 2016)</li> </ul> <h1>Feature integration</h1> <h2>Notification support</h2> <p>In general there are two options for sending notifications from MCS. Integrating with FCM and integrating with Syniverse. Since they are third party suppliers, you should compare these options (license, support, performance, cost, etc) before choosing one of them.</p> <p>You can also use any other notification provider if it offers a REST interface by using the REST connector. You will not get much help in configuring it through the MCS interface though; it will be a custom implementation.</p> <h2>Firebase Cloud Messaging / Google Cloud Messaging</h2> <p>Notification support is implemented by integrating with Google cloud messaging products. <a href="https://developers.google.com/cloud-messaging/">Google Cloud Messaging (GCM)</a> is being replaced with <a href="https://firebase.google.com/docs/cloud-messaging/">Firebase Cloud Messaging (FCM)</a> in MCS. GCM has been deprecated by Google for quite a while now so this is a good move. You do need a Google Cloud Account though and have to purchase their services in order to use this functionality. See for example <a href="https://community.oracle.com/community/oracle-cloud/oracle-cloud-developer-solutions/blog/2016/08/16/your-first-push-notification-based-oracle-jet-hybrid-application">here</a> on how to implement this from a JET hybrid application.</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/gcm-logo.png?ssl=1"><img data-attachment-id="45686" data-permalink="https://technology.amis.nl/2017/08/11/oracle-mobile-cloud-service-mcs-overview-of-integration-options/gcm-logo/" data-orig-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/gcm-logo.png?fit=374%2C214&amp;ssl=1" data-orig-size="374,214" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="gcm-logo" data-image-description="" data-medium-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/gcm-logo.png?fit=300%2C172&amp;ssl=1" data-large-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/gcm-logo.png?fit=374%2C214&amp;ssl=1" class="aligncenter size-medium wp-image-45686" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/gcm-logo.png?resize=300%2C172&#038;ssl=1" alt="" srcset="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/gcm-logo.png?resize=300%2C172&amp;ssl=1 300w, https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/gcm-logo.png?w=374&amp;ssl=1 374w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" /></a> <a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/firebase.png?ssl=1"><img data-attachment-id="45685" data-permalink="https://technology.amis.nl/2017/08/11/oracle-mobile-cloud-service-mcs-overview-of-integration-options/firebase/" data-orig-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/firebase.png?fit=1600%2C820&amp;ssl=1" data-orig-size="1600,820" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="firebase" data-image-description="" data-medium-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/firebase.png?fit=300%2C154&amp;ssl=1" data-large-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/firebase.png?fit=702%2C360&amp;ssl=1" class="aligncenter size-medium wp-image-45685" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/firebase.png?resize=300%2C154&#038;ssl=1" alt="" srcset="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/firebase.png?resize=300%2C154&amp;ssl=1 300w, https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/firebase.png?resize=768%2C394&amp;ssl=1 768w, https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/firebase.png?resize=1024%2C525&amp;ssl=1 1024w, https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/firebase.png?w=1600&amp;ssl=1 1600w, https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/firebase.png?w=1404&amp;ssl=1 1404w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" /></a></p> <h2>Syniverse</h2> <p>Read more on how to implement this <a href="https://docs.oracle.com/en/cloud/paas/mobile-cloud/mcsua/notifications.html#GUID-71FDB6E6-E9E3-4F49-8601-DC748FF44426">here</a>. You first have to create a Syniverse account. Next subscribe to the Syniverse Messaging Service, register the app and get credentials. These credentials you can register in MCS, client management.</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/Logo-Syniverse.jpg?ssl=1"><img data-attachment-id="45689" data-permalink="https://technology.amis.nl/2017/08/11/oracle-mobile-cloud-service-mcs-overview-of-integration-options/logo-syniverse/" data-orig-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/Logo-Syniverse.jpg?fit=1481%2C634&amp;ssl=1" data-orig-size="1481,634" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Logo &#8211; Syniverse" data-image-description="" data-medium-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/Logo-Syniverse.jpg?fit=300%2C128&amp;ssl=1" data-large-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/Logo-Syniverse.jpg?fit=702%2C300&amp;ssl=1" class="aligncenter size-medium wp-image-45689" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/Logo-Syniverse.jpg?resize=300%2C128&#038;ssl=1" alt="" srcset="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/Logo-Syniverse.jpg?resize=300%2C128&amp;ssl=1 300w, https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/Logo-Syniverse.jpg?resize=768%2C329&amp;ssl=1 768w, https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/Logo-Syniverse.jpg?resize=1024%2C438&amp;ssl=1 1024w, https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/Logo-Syniverse.jpg?w=1481&amp;ssl=1 1481w, https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/Logo-Syniverse.jpg?w=1404&amp;ssl=1 1404w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" /></a></p> <p>&nbsp;</p> <h2>Beacon support</h2> <p>Beacons create packages which can be detected on Bluetooth by mobile devices. The package structure the beacons broadcast, can differ. There are samples available for iBeacon, altBeacon and Eddystone but others can be added if you know the corresponding package structure. See <a href="https://www.slideshare.net/stevendavelaar/building-beaconenabled-apps-with-oracle-mcs">the following presentation</a> some background on beacons and how they can be integrated in MCS. How to implement this for an Android app can be watched <a href="https://www.youtube.com/watch?v=BGNXwWGoR2o">here</a>.</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/iBeacon-1.jpg?ssl=1"><img data-attachment-id="45687" data-permalink="https://technology.amis.nl/2017/08/11/oracle-mobile-cloud-service-mcs-overview-of-integration-options/ibeacon-1/" data-orig-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/iBeacon-1.jpg?fit=480%2C518&amp;ssl=1" data-orig-size="480,518" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="iBeacon-1" data-image-description="" data-medium-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/iBeacon-1.jpg?fit=278%2C300&amp;ssl=1" data-large-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/iBeacon-1.jpg?fit=480%2C518&amp;ssl=1" class="aligncenter size-medium wp-image-45687" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/iBeacon-1.jpg?resize=278%2C300&#038;ssl=1" alt="" srcset="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/iBeacon-1.jpg?resize=278%2C300&amp;ssl=1 278w, https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/iBeacon-1.jpg?w=480&amp;ssl=1 480w" sizes="(max-width: 278px) 100vw, 278px" data-recalc-dims="1" /></a> <a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/altbeacon-logo.png?ssl=1"><img data-attachment-id="45680" data-permalink="https://technology.amis.nl/2017/08/11/oracle-mobile-cloud-service-mcs-overview-of-integration-options/altbeacon-logo/" data-orig-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/altbeacon-logo.png?fit=200%2C200&amp;ssl=1" data-orig-size="200,200" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="altbeacon logo" data-image-description="" data-medium-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/altbeacon-logo.png?fit=200%2C200&amp;ssl=1" data-large-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/altbeacon-logo.png?fit=200%2C200&amp;ssl=1" class="aligncenter size-full wp-image-45680" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/altbeacon-logo.png?resize=200%2C200&#038;ssl=1" alt="" srcset="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/altbeacon-logo.png?w=200&amp;ssl=1 200w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/altbeacon-logo.png?resize=150%2C150&amp;ssl=1 150w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/altbeacon-logo.png?resize=144%2C144&amp;ssl=1 144w" sizes="(max-width: 200px) 100vw, 200px" data-recalc-dims="1" /></a> <a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/eddystone.jpg?ssl=1"><img data-attachment-id="45684" data-permalink="https://technology.amis.nl/2017/08/11/oracle-mobile-cloud-service-mcs-overview-of-integration-options/eddystone/" data-orig-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/eddystone.jpg?fit=1874%2C588&amp;ssl=1" data-orig-size="1874,588" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="eddystone" data-image-description="" data-medium-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/eddystone.jpg?fit=300%2C94&amp;ssl=1" data-large-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/eddystone.jpg?fit=702%2C220&amp;ssl=1" class="aligncenter size-medium wp-image-45684" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/eddystone.jpg?resize=300%2C94&#038;ssl=1" alt="" srcset="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/eddystone.jpg?resize=300%2C94&amp;ssl=1 300w, https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/eddystone.jpg?resize=768%2C241&amp;ssl=1 768w, https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/eddystone.jpg?resize=1024%2C321&amp;ssl=1 1024w, https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/eddystone.jpg?w=1404&amp;ssl=1 1404w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" /></a></p> <p>&nbsp;</p> <h2>Client support</h2> <p>MCS comes with several SDKs which provide easy integration of a client with MCS APIs. Available client SDKs are iOS, Android, Windows, Web (plain JavaScript). These SDKs provide an easy alternative to using the raw MCS REST APIs. They provide a wrapper for the APIs and provide easy access in the respective language the client uses.</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/client-sdk.png?ssl=1"><img data-attachment-id="45681" data-permalink="https://technology.amis.nl/2017/08/11/oracle-mobile-cloud-service-mcs-overview-of-integration-options/client-sdk/" data-orig-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/client-sdk.png?fit=368%2C316&amp;ssl=1" data-orig-size="368,316" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="client sdk" data-image-description="" data-medium-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/client-sdk.png?fit=300%2C258&amp;ssl=1" data-large-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/client-sdk.png?fit=368%2C316&amp;ssl=1" class="aligncenter size-medium wp-image-45681" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/client-sdk.png?resize=300%2C258&#038;ssl=1" alt="" srcset="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/client-sdk.png?resize=300%2C258&amp;ssl=1 300w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/client-sdk.png?resize=110%2C96&amp;ssl=1 110w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/client-sdk.png?w=368&amp;ssl=1 368w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" /></a></p> <h2>Authentication options (incoming)</h2> <h3>SAML, JWT</h3> <p>Third party token support for SAML and JWT is available. Read more <a href="http://docs.oracle.com/en/cloud/paas/mobile-cloud/mcsua/authentication-mcs.html#GUID-4A02AD1E-B865-4A5C-9EFC-13DE2953535A">here</a>. A token exchange is available as part of MCS which creates MCS tokens from third party tokens based on specifically defined mappings. This MCS tokens can be used by clients in subsequent requests. This does require some work on the client side but the SDKs of course help with this.</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/saml.jpg?ssl=1"><img data-attachment-id="45693" data-permalink="https://technology.amis.nl/2017/08/11/oracle-mobile-cloud-service-mcs-overview-of-integration-options/saml-2/" data-orig-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/saml.jpg?fit=350%2C240&amp;ssl=1" data-orig-size="350,240" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="saml" data-image-description="" data-medium-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/saml.jpg?fit=300%2C206&amp;ssl=1" data-large-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/saml.jpg?fit=350%2C240&amp;ssl=1" class="aligncenter size-medium wp-image-45693" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/saml.jpg?resize=300%2C206&#038;ssl=1" alt="" srcset="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/saml.jpg?resize=300%2C206&amp;ssl=1 300w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/saml.jpg?w=350&amp;ssl=1 350w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" /></a> <a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/jwt.png?ssl=1"><img data-attachment-id="45688" data-permalink="https://technology.amis.nl/2017/08/11/oracle-mobile-cloud-service-mcs-overview-of-integration-options/jwt/" data-orig-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/jwt.png?fit=397%2C195&amp;ssl=1" data-orig-size="397,195" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="jwt" data-image-description="" data-medium-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/jwt.png?fit=300%2C147&amp;ssl=1" data-large-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/jwt.png?fit=397%2C195&amp;ssl=1" class="aligncenter size-medium wp-image-45688" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/jwt.png?resize=300%2C147&#038;ssl=1" alt="" srcset="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/jwt.png?resize=300%2C147&amp;ssl=1 300w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/jwt.png?w=397&amp;ssl=1 397w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" /></a></p> <h3>Facebook Login</h3> <p>Read <a href="https://community.oracle.com/community/oracle-cloud/oracle-cloud-developer-solutions/blog/2017/01/31/how-to-integrate-and-secure-custom-apis-using-facebook-login-in-hybrid-apps">here</a> for an example on how to implement this in a hybrid JET application.</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/tech-facebook.png?ssl=1"><img data-attachment-id="45694" data-permalink="https://technology.amis.nl/2017/08/11/oracle-mobile-cloud-service-mcs-overview-of-integration-options/tech-facebook/" data-orig-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/tech-facebook.png?fit=1683%2C332&amp;ssl=1" data-orig-size="1683,332" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="tech-facebook" data-image-description="" data-medium-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/tech-facebook.png?fit=300%2C59&amp;ssl=1" data-large-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/tech-facebook.png?fit=702%2C138&amp;ssl=1" class="aligncenter size-medium wp-image-45694" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/tech-facebook.png?resize=300%2C59&#038;ssl=1" alt="" srcset="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/tech-facebook.png?resize=300%2C59&amp;ssl=1 300w, https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/tech-facebook.png?resize=768%2C152&amp;ssl=1 768w, https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/tech-facebook.png?resize=1024%2C202&amp;ssl=1 1024w, https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/tech-facebook.png?w=1404&amp;ssl=1 1404w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" /></a></p> <h3>OAuth2 and Basic authentication support.</h3> <p>No third party OAuth tokens are supported. This is not strange since the OAuth token does not contain user data and MCS needs a way to validate the token. MCS provides its own OAuth2 STS (Secure Token Service) to create tokens for MCS users. Read more <a href="https://technology.amis.nl/2017/04/07/mcs-introduction-api-security-basic-authentication-oauth2/" target="_blank" rel="noopener">here</a>.</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/1200px-Oauth_logo.svg_.png?ssl=1"><img data-attachment-id="45679" data-permalink="https://technology.amis.nl/2017/08/11/oracle-mobile-cloud-service-mcs-overview-of-integration-options/1200px-oauth_logo-svg/" data-orig-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/1200px-Oauth_logo.svg_.png?fit=1200%2C1204&amp;ssl=1" data-orig-size="1200,1204" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="1200px-Oauth_logo.svg" data-image-description="" data-medium-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/1200px-Oauth_logo.svg_.png?fit=300%2C300&amp;ssl=1" data-large-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/1200px-Oauth_logo.svg_.png?fit=702%2C704&amp;ssl=1" class="aligncenter size-medium wp-image-45679" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/1200px-Oauth_logo.svg_.png?resize=300%2C300&#038;ssl=1" alt="" srcset="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/1200px-Oauth_logo.svg_.png?resize=300%2C300&amp;ssl=1 300w, https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/1200px-Oauth_logo.svg_.png?resize=150%2C150&amp;ssl=1 150w, https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/1200px-Oauth_logo.svg_.png?resize=768%2C771&amp;ssl=1 768w, https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/1200px-Oauth_logo.svg_.png?resize=1021%2C1024&amp;ssl=1 1021w, https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/1200px-Oauth_logo.svg_.png?resize=144%2C144&amp;ssl=1 144w, https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/1200px-Oauth_logo.svg_.png?w=1200&amp;ssl=1 1200w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" /></a></p> <h3>Oracle Enterprise Single Sign-on support.</h3> <p>Read <a href="https://docs.oracle.com/en/cloud/paas/mobile-cloud/mcsua/authentication-mcs.html#GUID-55D86B3D-F8BF-457E-8A2A-D33928BCFFDF">here</a>. This is not to be confused with the Oracle Enterprise Single Sign-on Suite (ESSO). This is browser based authentication of Oracle Cloud users which are allowed access to MCS.</p> <p>These provide the most common web authentication methods. Especially the third party SAML and JWT support provides for many integration options with third party authentication providers. <a href="https://www.okta.com/">OKTA</a> is given as an example in the documentation.</p> <h1>Application integration: connectors</h1> <p>MCS provides connectors which allow wizard driven configuration in MCS. Connectors are used for outgoing calls. There is a connector API available which makes it easy to interface with the connectors from custom JavaScript code. The connectors support the use of Oracle Credential Store Framework (CSF) keys and certificates. TLS versions to TLS 1.2 are supported. You are of course warned that older versions might not be secure. The requests the connectors do are over HTTP since no other technologies are currently directly supported. You can of course use REST APIs and ICS as wrappers should you need it.</p> <h2>Connector security settings</h2> <p>For the different connectors, several Oracle Web Service Security Manager (OWSM) policies are used. See here. These allow you to configure several security settings and for example allow usage of WS Security and SAML tokens for outgoing connections. The policies can be configured with security policy properties. See <a href="https://docs.oracle.com/en/cloud/paas/mobile-cloud/mcsua/rest-connector-apis.html#GUID-B99D930D-122F-4445-9A53-1403BDAED057">here</a>.</p> <h2>REST</h2> <p>It is recommended to use the REST connector instead of doing calls directly from your custom API code because of they integrate well with MCS and provide security and monitoring benefits. For example out of the box analytics.</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/rest.png?ssl=1"><img data-attachment-id="45692" data-permalink="https://technology.amis.nl/2017/08/11/oracle-mobile-cloud-service-mcs-overview-of-integration-options/rest/" data-orig-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/rest.png?fit=280%2C150&amp;ssl=1" data-orig-size="280,150" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="rest" data-image-description="" data-medium-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/rest.png?fit=280%2C150&amp;ssl=1" data-large-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/rest.png?fit=280%2C150&amp;ssl=1" class="aligncenter size-full wp-image-45692" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/rest.png?resize=280%2C150&#038;ssl=1" alt="" data-recalc-dims="1" /></a></p> <h2>SOAP</h2> <p>The SOAP connector can do a transformation from SOAP to JSON and back to make working with the XML easier in JavaScript code. This has some limitations however:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/download.png?ssl=1"><img data-attachment-id="45683" data-permalink="https://technology.amis.nl/2017/08/11/oracle-mobile-cloud-service-mcs-overview-of-integration-options/download-2/" data-orig-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/download.png?fit=196%2C196&amp;ssl=1" data-orig-size="196,196" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="download" data-image-description="" data-medium-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/download.png?fit=196%2C196&amp;ssl=1" data-large-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/download.png?fit=196%2C196&amp;ssl=1" class="aligncenter size-full wp-image-45683" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/download.png?resize=196%2C196&#038;ssl=1" alt="" srcset="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/download.png?w=196&amp;ssl=1 196w, https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/download.png?resize=150%2C150&amp;ssl=1 150w, https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/download.png?resize=144%2C144&amp;ssl=1 144w" sizes="(max-width: 196px) 100vw, 196px" data-recalc-dims="1" /></a></p> <h3>Connector scope</h3> <p>There are also some general limitations defined by <a href="https://docs.oracle.com/en/cloud/paas/mobile-cloud/mcsua/soap-connector-apis.html#GUID-4ACC6C6C-5FBB-471F-90DB-69C2BA9D1C32">the scope</a> of the API of the connector:</p> <ul> <li>Only SOAP version 1.1 and WSDL version 1.2 are supported.</li> <li>Only the WS-Security standard is supported. Other WS-* standards, such as WS-RM or WS-AT, aren’t supported.</li> <li>Only document style and literal encoding are supported.</li> <li>Attachments aren’t supported.</li> <li>Of the possible combinations of input and output message operations, only input-output operations and input-only operations are supported. These operations are described in the Web Services Description Language (WSDL) Version 1.2 specification.</li> </ul> <h3>Transformation limitations</h3> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/xmljson.png?ssl=1"><img data-attachment-id="45695" data-permalink="https://technology.amis.nl/2017/08/11/oracle-mobile-cloud-service-mcs-overview-of-integration-options/xmljson/" data-orig-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/xmljson.png?fit=646%2C286&amp;ssl=1" data-orig-size="646,286" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="xmljson" data-image-description="" data-medium-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/xmljson.png?fit=300%2C133&amp;ssl=1" data-large-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/xmljson.png?fit=646%2C286&amp;ssl=1" class="aligncenter size-medium wp-image-45695" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/xmljson.png?resize=300%2C133&#038;ssl=1" alt="" srcset="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/xmljson.png?resize=300%2C133&amp;ssl=1 300w, https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/xmljson.png?w=646&amp;ssl=1 646w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" /></a></p> <ul> <li>The transformation from SOAP to XML has limitations</li> <li>A choice group with child elements belonging to different namespaces having the same (local) name. This is because JSON doesn’t have any namespace information.</li> <li>A sequence group with child elements having duplicate local names. For example, &lt;Parent&gt;&lt;ChildA/&gt;&lt;ChildB/&gt;&#8230;&lt;ChildA/&gt;&#8230;&lt;/Parent&gt;. This translates to an object with duplicate property names, which isn’t valid.</li> <li>XML Schema Instance (xsi) attributes aren’t supported.</li> </ul> <h2>Integration Cloud Service connector</h2> <p>Read more about this connector <a href="https://docs.oracle.com/en/cloud/paas/mobile-cloud/mcsua/ics-connector-apis.html#GUID-FC12D345-07F2-43BF-8C0C-4938DD37EAFB">here</a>. This connector allows you to call ICS integrations. You can connect to your ICS instance and select an integration from a drop-down menu. For people who also use ICS in their cloud architecture, this will probably be the most common used connector.</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/cloudgs_integration.png?ssl=1"><img data-attachment-id="45682" data-permalink="https://technology.amis.nl/2017/08/11/oracle-mobile-cloud-service-mcs-overview-of-integration-options/cloudgs_integration/" data-orig-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/cloudgs_integration.png?fit=270%2C170&amp;ssl=1" data-orig-size="270,170" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="cloudgs_integration" data-image-description="" data-medium-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/cloudgs_integration.png?fit=270%2C170&amp;ssl=1" data-large-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/cloudgs_integration.png?fit=270%2C170&amp;ssl=1" class="aligncenter size-full wp-image-45682" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/cloudgs_integration.png?resize=270%2C170&#038;ssl=1" alt="" data-recalc-dims="1" /></a></p> <h2>Fusion Applications connector</h2> <p>Read more about this connector <a href="https://docs.oracle.com/en/cloud/paas/mobile-cloud/mcsua/fusion-applications-connector-apis.html#GUID-AD851659-DAF1-43EF-81A9-84E013020D3A">here</a>. The flow looks similar to that of the ICS Cloud Adapters (<a href="https://docs.oracle.com/en/cloud/paas/integration-cloud-service/find-adapters.html">here</a>). In short, you authenticate, a resource discovery is done and local artifacts are generated which contain the connector configuration. At runtime this configuration is used to access the service. The wizard driven configuration of the connector is a great strength. MCS does not provide the full range of cloud adapters as is available in ICS and SOA CS.</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/oracle_fusion.png?ssl=1"><img data-attachment-id="45691" data-permalink="https://technology.amis.nl/2017/08/11/oracle-mobile-cloud-service-mcs-overview-of-integration-options/oracle_fusion/" data-orig-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/oracle_fusion.png?fit=640%2C239&amp;ssl=1" data-orig-size="640,239" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="oracle_fusion" data-image-description="" data-medium-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/oracle_fusion.png?fit=300%2C112&amp;ssl=1" data-large-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/oracle_fusion.png?fit=640%2C239&amp;ssl=1" class="aligncenter size-medium wp-image-45691" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/oracle_fusion.png?resize=300%2C112&#038;ssl=1" alt="" srcset="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/oracle_fusion.png?resize=300%2C112&amp;ssl=1 300w, https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/oracle_fusion.png?w=640&amp;ssl=1 640w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" /></a></p> <h1>Finally</h1> <h2>Flexibility</h2> <p>Oracle Mobile Cloud Service allows you to define custom APIs using JavaScript code. Oracle Mobile Cloud Service V17.2.5-201705101347 runs Node.js version v6.10.0 and OpenSSL version 1.0.2k (process.versions) which are quite new! Because a new OpenSSL version is supported, TLS 1.2 ciphers are also supported and can be used to create connections to other systems. This can be done from custom API code or by configuring the OWSM settings in the connector configuration. It runs on Oracle Enterprise Linux 6 kernel 2.6.39-400.109.6.el6uek.x86_64 (JavaScript: os.release()). Most JavaScript packages will run on this version so few limitations there.</p> <p>ICS also provides an option to define custom JavaScript functions (see <a href="https://oracle-integration.cloud/2017/05/22/custom-functions-ics-definitive-guide-2/">here</a>). I haven&#8217;t looked at the engine used in ICS though but I doubt this will be a full blown Node.js instance and suspect (please correct me if I&#8217;m wrong) a JVM JavaScript engine is used like in SOA Suite / SOA CS. This provides less functionality and performance compared to Node.js instances.</p> <h2>What is missing?</h2> <h3>Integration with other Oracle Cloud services</h3> <p>Mobile Cloud Service does lack out of the box integration options with other Oracle Cloud Services. Only 4 HTTP based connectors are available. Thus if you want to integrate with an Oracle Cloud database (a different one than which is provided) you have to use the external DB&#8217;s REST API (with the REST connector or from custom API code) or use for example the Integration Cloud Service connector or the Application Container Cloud Service to wrap the database functionality. This of course requires a license for the respective services.</p> <h3>Cloud adapters</h3> <p>A Fusion Applications Connector is present in MCS. Also OWSM policies are used in MCS. It would therefore not be strange if MCS would be technically capable of running more of the Cloud adapters which are present in ICS. This would greatly increase the integration options for MCS.</p> <h3>Mapping options for complex payloads</h3> <p>Related to the above, if the payloads become large and complex, mapping fields also becomes more of a challenge. ICS does a better job at this than MCS currently. It has a better mapping interface and provides mapping suggestions.</p> <p>The post <a rel="nofollow" href="https://technology.amis.nl/2017/08/11/oracle-mobile-cloud-service-mcs-overview-of-integration-options/">Oracle Mobile Cloud Service (MCS): Overview of integration options</a> appeared first on <a rel="nofollow" href="https://technology.amis.nl">AMIS Oracle and Java Blog</a>.</p> Maarten Smeets https://technology.amis.nl/?p=45678 Fri Aug 11 2017 05:40:14 GMT-0400 (EDT) Automating Build and Deployment of Node application in Oracle Developer Cloud to Application Container Cloud https://technology.amis.nl/2017/08/11/automating-build-and-deployment-of-node-application-in-oracle-developer-cloud-to-application-container-cloud/ <p>A familiar story:</p> <ul> <li>Develop a Node application with one or more developers</li> <li>Use Oracle Developer Cloud Service to organize the development work, host the source code and coordinate build jobs and the ensuing deployment</li> <li>Run the Node application on Oracle Application Container Cloud</li> </ul> <p>I have read multiple tutorials and blog posts that each seemed to provide a piece of puzzle. This article shows the full story &#8211; in its simplest form.</p> <p>We will:</p> <ul> <li>Start a new project on Developer Cloud Service</li> <li>Clone the Git repository for this new project</li> <li>Locally work on the Node application and configure it for Application Container Cloud</li> <li>Commit and push the sources to the Git repo</li> <li>Create a Build job in Developer Cloud service that creates the zip file that is suitable for deployment; the job is triggered by changes on the master branch in the Git repo</li> <li>Create a Deployment linking to an existing Oracle Application Container Cloud service instance; associate the deployment with the build task (and vice versa)</li> <li>Run the build job &#8211; and verify that the application will be deployed to ACCS</li> <li>Add the ACCS Deployment descriptor with the definition of environment variables (that are used inside the Node application)</li> <li>Make a change in the sources of the application, commit and push and verify that the live application gets updated</li> </ul> <p>Prerequisites: access to a Developer Cloud Instance and an Application Container Cloud service. Locally access to git and ideally Node and npm.</p> <p>Sources for this article are in GitHub: https://github.com/lucasjellema/greeting .</p> <h3>Start a new project on Developer Cloud Service</h3> <p>Create the new project <em>greeting</em> in Developer Cloud</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-10.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-10.png?resize=493%2C291&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image3.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image3_thumb.png?resize=484%2C402&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image6.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image6_thumb.png?resize=489%2C404&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image9.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image9_thumb.png?resize=488%2C403&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>After you press Finish, the new project is initialized along with all associated resources and facilities, such as a new Git repository, a Wiki, an Issue store.</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image12.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image12_thumb.png?resize=522%2C272&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>When the provisioning is done, the project can be accessed.</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image15.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image15_thumb.png?resize=537%2C248&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>&nbsp;</p> <h3>Locally work on the Node application</h3> <p>Copy the git URL for the source code repository.</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image18.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image18_thumb.png?resize=491%2C225&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Clone the Git repository for this new project</p> <blockquote><p>git clone <a href="https://lucas.jellema%40amis.nl@developer.us2.oraclecloud.com/developer73410-a512292/s/developer73410-a512292_greeting_19451/scm/greeting.git">https://lucas.jellema%40amis.nl@developer.us2.oraclecloud.com/developer73410-a512292/s/developer73410-a512292_greeting_19451/scm/greeting.git</a></p></blockquote> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image21.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image21_thumb.png?resize=645%2C196&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Start a new Node application, using npm init:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image24.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image24_thumb.png?resize=531%2C507&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>This will create the package.json file.</p> <p>To prepare the application for eventual deployment to Application Container Cloud, we need to add the manifest.json file.</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image30.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image30_thumb.png?resize=637%2C173&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>We also need to create a .gitignore file, to prevent node_modules from being committed and pushed to Git.</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image27.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image27_thumb.png?resize=494%2C194&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Implement the application itself, in file app.js. This is a very simplistic application &#8211; that will handle an incoming request and return a greeting of some sort:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image33.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image33_thumb.png?resize=628%2C243&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Note how the greeting can be read from an environment variable, just like the port on which the requests should be listened to. When no environment values are provided, defaults are used instead.</p> <h3>Commit and push the sources to the Git repo</h3> <p>The Git repository in the Developer Cloud Service project is empty except for the readme.md when the project is first created:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image36.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image36_thumb.png?resize=627%2C157&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Now we commit and push the files created locally:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image39.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image39_thumb.png?resize=483%2C206&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>and</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image42.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image42_thumb.png?resize=483%2C170&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>A little while later, these sources show up in Developer Cloud Service console:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image45.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image45_thumb.png?resize=666%2C244&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <h3>Create a Build job in Developer Cloud service</h3> <p>To have the application build we can create a build job in Developer Cloud Service that creates the zip file that is suitable for deployment; this zip file needs to contain all sources from Git and all dependencies (all node modules) specified in package.json. The job is triggered by changes on the master branch in the Git repo. Note: the build job ideally should also perform automated tests &#8211; such as described by Yannick <a href="http://www.ateam-oracle.com/automated-unit-tests-with-node-js-and-developer-cloud-services/" target="_blank" rel="noopener">here</a>.</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image48.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image48_thumb.png?resize=599%2C289&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image51.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image51_thumb.png?resize=428%2C212&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Specify free-style job. Specify the name &#8211; here BuildAndDeploy.</p> <p>Configure the Git repository that contains the sources to build; this is the repository that was first set up when the project was created.</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image54.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image54_thumb.png?resize=624%2C319&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Configure the build job to be performed whenever sources are committed to (the master branch in) the Git repository:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image57.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image57_thumb.png?resize=627%2C276&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>&nbsp;</p> <p>Create a Build Step, of type Execute Shell:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image60.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image60_thumb.png?resize=623%2C321&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>&nbsp;</p> <p>Enter the following shell-script commands:</p> <blockquote><p>git config &#8211;global url.https://github.com/.insteadOf git://github.com/</p> <p>npm install</p> <p>zip -r greeting.zip .</p></blockquote> <p>This will download all required node modules and package all sources in a single zip-file called greeting.zip.</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image63.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image63_thumb.png?resize=684%2C253&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Define as post build step that the greeting.zip file should be archived. That makes this zip file available as artifact produced by the build job &#8211; for use in deployments or other build jobs.</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image66.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image66_thumb.png?resize=667%2C269&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>&nbsp;</p> <p>Run the job a first time with Build Now.</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image69.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image69_thumb.png?resize=658%2C388&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image72.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image72_thumb.png?resize=663%2C317&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image78.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image78_thumb.png?resize=667%2C313&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>The console output for running the shell commands is shown. Note that the implicit first steps performed in a build include the retrieval of all sources from the git repositories on to the file system of the build server. The explicit shell commands are executed subsequently &#8211; and can make use of these cloned git repo sources.</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image81.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image81_thumb.png?resize=655%2C351&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>The build job produces greeting.zip as artifact:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image84.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image84_thumb.png?resize=650%2C292&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <h3>Create a Deployment linking to an existing Oracle Application Container Cloud service instance</h3> <p>The build job produces an artifact that can be deployed to an ACCS instance. We need a Deployment to create an ACCS instance based on that artifact. The Deployment is the bridge between the build artifact and a specific target environment &#8211; in this case an ACCS instance.</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image75.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image75_thumb.png?resize=643%2C249&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Specify name of the configuration &#8211; for use within Developer Cloud Service &#8211; and of the application &#8211; that will be used in Application Container Cloud. Specify the type of Deployment &#8211; we want On Demand because that type of Deployment can be associated with a Build job to be automatically performed at the end of the build. Specify the Deployment Target &#8211; New of type Application Container Cloud.</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image87.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image87_thumb.png?resize=667%2C318&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Provide the connection details for an ACCS instance. Press Test Connection to verify these details.</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image90.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image90_thumb.png?resize=530%2C208&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Upon success, click on Use Connection.</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image93.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image93_thumb.png?resize=526%2C217&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Specify the type of Runtime &#8211; Node in this case. Select the Build Job and Artifact to base this Deployment on:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image96.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image96_thumb.png?resize=603%2C338&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image99.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image99_thumb.png?resize=591%2C324&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Note: for now, the Deployment is tied to a specific instance of the build job. When add the Deployment as Post Build step to the Build Job, we will always use the artifact produced by that specific build instance.</p> <p>When the Deployment is saved, it starts to execute the deployment immediately:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image114.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image114_thumb.png?resize=561%2C187&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>In the Application Container Cloud Console, we can see the new Node application <em>greeting</em> being created</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image116.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image116_thumb.png?resize=611%2C251&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image135.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image135_thumb.png?resize=610%2C223&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>After some time (actually, quite some time) the application is deployed and ready to be accessed:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image118.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image118_thumb.png?resize=604%2C216&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>And here is the result of opening the application in  browser</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image120.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image120_thumb.png?resize=514%2C98&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Now associate the build job with the Deployment, in order to have the deployment performed at the end of each successful build:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image126.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image126_thumb.png?resize=702%2C268&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Go to the Post Build tab, check the box for Oracle Cloud Service Deployment and add a Deployment Task of type Deploy:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image129.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image129_thumb.png?resize=702%2C405&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Select the Deployment we created earlier:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image132.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image132_thumb.png?resize=658%2C214&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>And press Save to save the changes to the build job’s definition.</p> <p>&nbsp;</p> <h3>Run the build job &#8211; and verify that the application will be deployed to ACCS (again)</h3> <p>If we now run the build job, as its last action it should perform the deployment:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image141.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image141_thumb.png?resize=667%2C333&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image144.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image144_thumb.png?resize=677%2C259&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image147.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image147_thumb.png?resize=399%2C401&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>The ACCS console shows that now we have Version 2.0, deployed just now.</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image138.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image138_thumb.png?resize=591%2C227&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>&nbsp;</p> <h3>Add the ACCS Deployment descriptor with the definition of environment variables</h3> <p>The app.js file contains the line</p> <blockquote><p>var greeting = process.env.GREETING || &#8216;Hello World!&#8217;;</p></blockquote> <p>This line references the environment variable GREETING &#8211; that currently is not set. By defining a deployment descriptor as part of the Deployment definition, we can not only specify the number of instances and their size as well as any Service Bindings <em>and</em> the value of Environment Variables such as GREETING.</p> <p>&nbsp;</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image150.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image150_thumb.png?resize=671%2C251&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Add the Deployment Descriptor json:</p> <blockquote><p>{</p> <p>&#8220;memory&#8221;: &#8220;1G&#8221;,</p> <p>&#8220;instances&#8221;: &#8220;1&#8221;,</p> <p>&#8220;environment&#8221;: {</p> <p>&#8220;GREETING&#8221;:&#8221;Greetings to you&#8221;,</p> <p>&#8220;APPLICATION_PREFIX&#8221;:&#8221;GRTZ&#8221;</p> <p>}</p> <p>}</p></blockquote> <p>Note: variable APPLICATION_PREFIX is not currently used.</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image153.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image153_thumb.png?resize=688%2C426&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Save and the deployment will be performed again:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image156.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image156_thumb.png?resize=621%2C284&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image159.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image159_thumb.png?resize=639%2C199&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>When done, the application can be accessed. This time, the greeting returned is the one specified in the the deployment descriptor deployment.json (as environment variable) and picked up by the application at run time (using</p> <p>process.env.GREETING).</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image162.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image162_thumb.png?resize=588%2C111&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <h3>Make a change in the sources of the application and Do the End To End Workflow</h3> <p>If we make a change in the application and commit and push the change to Git then after some time we should be able to verify that the live application gets updated.</p> <p>Make the change &#8211; a new version label and a small change in the text returned by the application.</p> <ul><!--EndFragment--></ul> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image165.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image165_thumb.png?resize=702%2C199&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Then commit the change and push the changes &#8211; to the Developer CS Git repo:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image168.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image168_thumb.png?resize=619%2C178&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>&nbsp;</p> <p>The changes arrive in the Git repo:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image171.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image171_thumb.png?resize=660%2C231&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Now the Git repo has been updated, the build job should be triggered:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image174.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image174_thumb.png?resize=639%2C271&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image177.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image177_thumb.png?resize=575%2C299&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Some of the console output &#8211; showing that deployment has started:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image180.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image180_thumb.png?resize=702%2C223&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>The ACCS Service Console makes it clear too</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image183.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image183_thumb.png?resize=702%2C213&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>When the deployment is done, it is clear that the code changes made it through to the running application:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image186.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image186_thumb.png?resize=526%2C84&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>So editing the source code and committing plus pushing to git suffices to trigger the build and redeployment of the application &#8211; thanks to the set up made in Developer Cloud Service.</p> <h3>Next Steps</h3> <p>Show how multiple instances of an application each have their own state &#8211; and how using an Application Cache can make them share state.</p> <p>Show how an ACCS application can easily access a DBaaS instance through Service Bindings (and in the case of Node application through the oracle node driver and OCI libraries that come prepackaged with the ACCS Node Runtime.</p> <p>Show how Oracle Management Cloud APM can be setup as part of an ACCS instance in order to perform application monitoring of applications running on ACCS; probably works for Log Analytics as well.</p> <p>&nbsp;</p> <h2>Resources</h2> <p>Sources for this article are available in GitHub: https://github.com/lucasjellema/greeting.</p> <p>Oracle Community Article by Abhinav Shroff &#8211;<a href="https://community.oracle.com/community/oracle-cloud/platform/oracle-developer-cloud-service/blog/2016/09/07/oracle-developer-cloud-to-build-and-deploy-nodejs-rest-project-on-application-container-cloud">Oracle Developer Cloud to build and deploy Nodejs REST project on Application Container Cloud</a></p> <p>A-Team Chronicle by Yannick Ongena- <a href="http://www.ateam-oracle.com/automated-unit-tests-with-node-js-and-developer-cloud-services/" target="_blank" rel="noopener">Automated unit tests with Node.JS and Developer Cloud Services</a></p> <p>Article by Fabrizio Marini &#8211; <a href="http://www.fabriziomarini.com/2016/03/oracle-application-container-cloud_30.html" target="_blank" rel="noopener">Oracle Application Container Cloud &amp; Developer Cloud Service: How to create a Node.js application with DB connection in pool (in cloud) and how to deploy it on Oracle Application Container Cloud (Node.js) using Developer Cloud Service</a></p> <p>Create Node.js Applications (Oracle Documentation) &#8211; <a title="https://docs.oracle.com/en/cloud/paas/app-container-cloud/create-sample-node.js-applications.html" href="https://docs.oracle.com/en/cloud/paas/app-container-cloud/create-sample-node.js-applications.html">https://docs.oracle.com/en/cloud/paas/app-container-cloud/create-sample-node.js-applications.html</a></p> <p>Developer Cloud Service Docs &#8211; <a href="https://docs.oracle.com/en/cloud/paas/developer-cloud/csdcs/managing-releases-oracle-developer-cloud-service.html#GUID-A44F8A67-1A25-424E-9569-D53EB574CF9B" target="_blank" rel="noopener">Managing Releases in Oracle Developer Cloud Service</a></p> <p>Oracle Documentation &#8211; Creating Meta Files for ACCS deployments &#8211; <a title="https://docs.oracle.com/en/cloud/paas/app-container-cloud/dvcjv/creating-meta-data-files.html" href="https://docs.oracle.com/en/cloud/paas/app-container-cloud/dvcjv/creating-meta-data-files.html">https://docs.oracle.com/en/cloud/paas/app-container-cloud/dvcjv/creating-meta-data-files.html</a></p> <p>The post <a rel="nofollow" href="https://technology.amis.nl/2017/08/11/automating-build-and-deployment-of-node-application-in-oracle-developer-cloud-to-application-container-cloud/">Automating Build and Deployment of Node application in Oracle Developer Cloud to Application Container Cloud</a> appeared first on <a rel="nofollow" href="https://technology.amis.nl">AMIS Oracle and Java Blog</a>.</p> Lucas Jellema https://technology.amis.nl/?p=45671 Fri Aug 11 2017 03:57:27 GMT-0400 (EDT) Latest Delphix Blog Post and Upcoming Webinars http://dbakevlar.com/2017/08/latest-delphix-blog-post-upcoming-webinars/ <div class="pf-content"><p>In my <a href="https://www.delphix.com/blog/devops-dba-ghost-machine">latest blog post</a> on the <a href="https://www.delphix.com/">Delphix</a> site, I continue my conversation with why DevOps is the next step for DBAs and how DBAs can embrace this next step in their evolution.</p> <p><a href="http://dbakevlar.com/2017/08/latest-delphix-blog-post-upcoming-webinars/embrace1/" rel="attachment wp-att-7075"></a><a href="http://dbakevlar.com/?attachment_id=7076" rel="attachment wp-att-7076"><img class="alignnone wp-image-7076" src="https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/08/dr-evil-crying1.gif?resize=355%2C205" alt="" data-recalc-dims="1" /></a></p> <p>This is an extensive series of blog posts, (four so far) to be followed by an ebook, a podcast and two webinars.  One is to be announced soon from Oracle called, &#8220;The DBA Diaries&#8221; and the other will be a from Delphix, titled, &#8220;<a href="https://www.delphix.com/webinar/revolution-databases-devops-dataops?utm_source=kellyn&amp;utm_medium=blog&amp;utm_campaign=dba_devops_webinar2">The Revolution:  From Databases and DevOps to DataOps</a>&#8220;.</p> <p>The goal for all of this is to ease transition for the Database community as the brutal shift to the cloud, now underway, changes our day to day lives.  Development continues to move at an ever accelerating pace and yet the DBA is standing still, waiting for the data to catch up with it all.  This is a concept that many refer to as &#8220;<a href="https://datagravity.org/about/">data gravity</a>&#8220;.</p> <p><a href="http://dbakevlar.com/2017/08/latest-delphix-blog-post-upcoming-webinars/screen-shot-2017-08-10-at-3-31-03-pm/" rel="attachment wp-att-7078"><img class="alignnone size-large wp-image-7078" src="https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/08/Screen-Shot-2017-08-10-at-3.31.03-PM.png?resize=600%2C196" alt="" srcset="https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/08/Screen-Shot-2017-08-10-at-3.31.03-PM.png?resize=1024%2C334 1024w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/08/Screen-Shot-2017-08-10-at-3.31.03-PM.png?resize=300%2C98 300w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/08/Screen-Shot-2017-08-10-at-3.31.03-PM.png?resize=768%2C251 768w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/08/Screen-Shot-2017-08-10-at-3.31.03-PM.png?w=1490 1490w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/08/Screen-Shot-2017-08-10-at-3.31.03-PM.png?w=1200 1200w" sizes="(max-width: 600px) 100vw, 600px" data-recalc-dims="1" /></a></p> <p>The concept was first coined just a few years ago by a <a href="https://blog.mccrory.me/about/">Senior VP Platform Engineer, Dave McCrory</a>.  It was an open discussion aimed at understanding how data impacted the way technology changed when connected with network, software and compute.</p> <p>He discusses the basic understanding that there&#8217;s a limit in &#8220;the speed with which information can get from memory (where data is stored) to computing (where data is acted upon) is the limiting factor in computing speed.&#8221; called the <a href="http://c2.com/cgi/wiki?VonNeumannBottleneck" target="_blank" rel="noopener">Von Newmann Bottleneck</a>.</p> <p>These are essential concepts that I believe all DBAs and Developers should understand, as data gravity impacts all of us.  Its the reason for many enhancements to database, network and compute power.  Its the reason optimization specialists are in such demand.  Other roles such as backup, monitoring and error handling can be automated, but the more that we drive logic into programs, nothing is as good as true skill in optimization when it comes to eliminating much of data gravity issues.  Less data, less weight-  it&#8217;s as simple as that.</p> <p>We all know the cloud discussions are coming, and with that, even bigger challenges are felt by the gravity from data.  Until then, let&#8217;s just take a step back and recognize that we need some new goals and some new skills.  If you&#8217;re like to learn more about data gravity, but don&#8217;t have time to take it all in at once, consider following it on <a href="https://twitter.com/datagravity?lang=en">Twitter, which is curated by Dave McCrory.</a></p> <p>I&#8217;m off to Jacksonville, Fl. tomorrow to speak at <a href="http://www.sqlsaturday.com/649/eventhome.aspx">SQL Saturday #649</a>!</p> <p><a href="http://dbakevlar.com/2017/08/latest-delphix-blog-post-upcoming-webinars/screen-shot-2017-08-10-at-3-29-26-pm/" rel="attachment wp-att-7077"><img class="alignnone wp-image-7077" src="https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/08/Screen-Shot-2017-08-10-at-3.29.26-PM.png?resize=260%2C61" alt="" srcset="https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/08/Screen-Shot-2017-08-10-at-3.29.26-PM.png?w=502 502w, https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/08/Screen-Shot-2017-08-10-at-3.29.26-PM.png?resize=300%2C71 300w" sizes="(max-width: 260px) 100vw, 260px" data-recalc-dims="1" /></a></p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <!-- Easy Plugin for AdSense Unfiltered [count: 3 is not less than 3] --></div><br><br><img src="https://i2.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/ico-tag.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> Tags:&nbsp;&nbsp;<a href="http://dbakevlar.com/tag/data-gravity/" rel="tag">data gravity</a>, <a href="http://dbakevlar.com/tag/dataops/" rel="tag">DataOps</a>, <a href="http://dbakevlar.com/tag/devops/" rel="tag">DevOps</a>, <a href="http://dbakevlar.com/tag/webinars/" rel="tag">Webinars</a><br><br><div style="width:100%"><table align="left" width="100%" cellspacing="0" cellpadding="0" bgcolor="#f1f1f1" border="0px;"> <tbody> <tr bgcolor="#ffffff"><td align="center" width="17%" valign="top"> <span class="sb_title">Del.icio.us</span><br> <a href="http://del.icio.us/post?url=http://dbakevlar.com/2017/08/latest-delphix-blog-post-upcoming-webinars/&title=Latest Delphix Blog Post and Upcoming Webinars"> <img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/delicious.gif?w=600" border="0" align="absmiddle" data-recalc-dims="1"> </a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">Facebook</span><br> <a href="http://www.facebook.com/share.php?u=http://dbakevlar.com/2017/08/latest-delphix-blog-post-upcoming-webinars/"><img src="https://i0.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/facebook_icon.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">TweetThis</span><br> <a href="http://twitthis.com/twit?url=http://dbakevlar.com/2017/08/latest-delphix-blog-post-upcoming-webinars/&title=Latest Delphix Blog Post and Upcoming Webinars"><img src="https://i2.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tweet.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">Digg</span><br> <a href="http://digg.com/submit?phase=2&url=http://dbakevlar.com/2017/08/latest-delphix-blog-post-upcoming-webinars/&title=Latest Delphix Blog Post and Upcoming Webinars"><img src="https://i0.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/digg.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">StumbleUpon</span><br> <a href="http://www.stumbleupon.com/submit?url=http://dbakevlar.com/2017/08/latest-delphix-blog-post-upcoming-webinars/&title=Latest Delphix Blog Post and Upcoming Webinars"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/stumble.gif?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td></tr> </tbody></table></div><br><div style="clear:both"></div><div style="background:#EEEEEE; padding:0px 0px 0px 15px; margin:10px 0px 0px 0px;"><div style="padding:5px 0px 5px 0px;"><b>Comments:</b>&nbsp;&nbsp;<a href="http://dbakevlar.com/2017/08/latest-delphix-blog-post-upcoming-webinars/#respond">0 (Zero), Be the first to leave a reply!</a></div><br><div style="clear:both"></div><div style="padding:13px 0px 5px 0px;"><span style="border-bottom:1px dashed #003399;padding-bottom:4px;"><strong>You might be interested in this:</strong></span>&nbsp;&nbsp;<br><ul style="margin:0; padding:0; padding-top:10px; padding-bottom:5px;"><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2017/01/smart-home-update/" >Smart Home Update</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2014/03/supporting-your-virtual-vms-post-ii-pc-and-vmimage-settings/" >Supporting Your Virtual VMs, Post II, PC and VM/Image Settings</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2017/03/clone-err-cloud-wars/" >Clone...err, Cloud Wars</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2012/12/fall-down-seven-times-get-up-eight-medical-profession-rant/" >Fall Down Seven Times, Get Up Eight- Medical Profession Rant</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2009/11/ora-01427-single-row-subquery-returns-more-than-one-row/" >ORA-01427: single-row subquery returns more than one row</a></li></ul></div></div><hr style="color:#EBEBEB" /><small>Copyright © <a href="http://dbakevlar.com">DBA Kevlar</a> [<a href="http://dbakevlar.com/2017/08/latest-delphix-blog-post-upcoming-webinars/">Latest Delphix Blog Post and Upcoming Webinars</a>], All Right Reserved. 2017.</small><br><p>The post <a rel="nofollow" href="http://dbakevlar.com/2017/08/latest-delphix-blog-post-upcoming-webinars/">Latest Delphix Blog Post and Upcoming Webinars</a> appeared first on <a rel="nofollow" href="http://dbakevlar.com">DBA Kevlar</a>.</p> dbakevlar http://dbakevlar.com/?p=7072 Thu Aug 10 2017 17:33:29 GMT-0400 (EDT) When Screen Scraping became API calling – Gathering Oracle OpenWorld 2017 Session Catalog with Node https://technology.amis.nl/2017/08/10/when-screen-scraping-became-api-calling-gathering-oracle-openworld-2017-session-catalog-with-node/ <p>A dataset with all sessions of the upcoming Oracle OpenWorld 2017 conference is nice to have &#8211; for experiments and demonstrations with many technologies. The session catalog is exposed at a website &#8211; <a title="https://events.rainfocus.com/catalog/oracle/oow17/catalogoow17" href="https://events.rainfocus.com/catalog/oracle/oow17/catalogoow17" target="_blank">https://events.rainfocus.com/catalog/oracle/oow17/catalogoow17</a>&nbsp; </p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/SNAGHTML59dcd59.png?ssl=1"><img title="SNAGHTML59dcd59" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="SNAGHTML59dcd59" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/SNAGHTML59dcd59_thumb.png?resize=480%2C319&#038;ssl=1" data-recalc-dims="1"></a></p> <p>With searching, filtering and scrolling, all available sessions can be inspected. If data is available in a browser, it can be retrieved programmatically and persisted locally in for example a JSON document. A typical approach for this is web scraping: having a server side program act like a browser, retrieve the HTML from the web site and query the data from the response. This process is described for example in this article &#8211; <a title="https://codeburst.io/an-introduction-to-web-scraping-with-node-js-1045b55c63f7" href="https://codeburst.io/an-introduction-to-web-scraping-with-node-js-1045b55c63f7">https://codeburst.io/an-introduction-to-web-scraping-with-node-js-1045b55c63f7</a> &#8211; for Node and the <a href="https://github.com/cheeriojs/cheerio" target="_blank">Cheerio library</a>. </p> <p>However, server side screen scraping of HTML will only be successful when the HTML is static. Dynamic HTML is constructed in the browser by executing JavaScript code that manipulates the browser DOM. If that is the mechanism behind a web site, server side scraping is at the very least considerably more complex (as it requires the server to emulate a modern web browser to a large degree). Selenium has been used in such cases &#8211; to provide a server side, programmatically accessible browser engine. Alternatively, screen scraping can also be performed inside the browser itself &#8211; as is supported for example by the <a href="https://github.com/epiqueras/getsy" target="_blank">Getsy library</a>.</p> <p>As you will find in this article &#8211; when server side scraping fails, client side scraping may be a much to complex solution. It is very well possible that the rich client web application is using a REST API that provides the data as a JSON document. An API that our server side program can also easily leverage. That turned out the case for the OOW 2017 website &#8211; so instead of complex HTML parsing and server side or even client side scraping, the challenge at hand resolves to nothing more than a little bit of REST calling.</p> <h3>Server Side Scraping</h3> <p>Server side scraping starts with client side inspection of a web site, using the developer tools in your favorite browser.</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb.png?resize=702%2C204&#038;ssl=1" data-recalc-dims="1"></a></p> <p>A simple first step with cheerio to get hold of the content of the H1 tag:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-1.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-1.png?resize=549%2C351&#038;ssl=1" data-recalc-dims="1"></a></p> <p>Now let’s inspect in the web page where we find those session details:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-2.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-2.png?resize=645%2C341&#038;ssl=1" data-recalc-dims="1"></a></p> <p>We are looking for LI elements with a CSS class of rf-list-item. Extending our little Node program with queries for these elements:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-3.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-3.png?resize=514%2C393&#038;ssl=1" data-recalc-dims="1"></a></p> <p>The result is disappointing. Apparently the document we have pulled with request-promise does not contain these list items. As I mentioned before, that is not necessarily surprising: these items are added to the DOM at runtime by JavaScript code executed after an Ajax call is used to fetch the session data. </p> <h3>Analyzing the REST API Calls</h3> <p>Using the Developer Tools in the browser, it is not hard to figure out which call was made to fetch these results:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-4.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-4.png?resize=680%2C252&#038;ssl=1" data-recalc-dims="1"></a></p> <p>The URL is there: https://events.rainfocus.com/api/search. Now the question is: what headers and parameters are sent as part of the request to the API &#8211; and what HTTP operation should it be (GET, POST, …)?</p> <p>The information in the browser tools reveals:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-5.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-5.png?resize=392%2C404&#038;ssl=1" data-recalc-dims="1"></a></p> <p>A little experimenting with custom calls to the API in Postman made clear that rfWidgetId and rfApiProfileId are required form data.</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-6.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-6.png?resize=445%2C427&#038;ssl=1" data-recalc-dims="1"></a></p> <p>Postman provides an excellent feature to quickly get going with source code in many technologies for making the REST call you have just put together:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-7.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-7.png?resize=607%2C351&#038;ssl=1" data-recalc-dims="1"></a></p> <h3>REST Calling in Node</h3> <p>My first stab:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-8.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-8.png?resize=679%2C384&#038;ssl=1" data-recalc-dims="1"></a></p> <p>With the sample generated by Postman as a starting point, it is not hard to create the Node application that will iterate through all session types &#8211; TUT, BOF, GEN, CON, … -:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image-9.png?ssl=1"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/08/image_thumb-9.png?resize=244%2C242&#038;ssl=1" data-recalc-dims="1"></a></p> <p>To limit the size of the individual (requests and) responses, I have decided to search the sessions of each type in 9 blocks &#8211; for example CON1, CON2, CON3 etc. The search string is padded with wild cards &#8211; so CON1 will return all sessions with an identifier starting with CON1.</p> <p>To be nice to the OOW 2017 server &#8211; and prevent being blocked out by any filters and protections &#8211; I will fire requests spaced apart (with a 500 ms delay between each of them).</p> <p>Because this code is for one time use only, and is not constrained by time limits, I have not put much effort in parallelizing the work, creating the most elegant code in the world etc. It is simply not worth it. This will do the job &#8211; once &#8211; and that is all I need. (although I want to extend the code to help me download the slide decks for the presentations in an automated fashion; for each conference, it takes me several hours to manually download slide decks to take with me on the plane ride home &#8211; only to find out each year that I am too tired to actually browser through those presentations).</p> <p>The Node code for constructing a local file with all OOW 2017 sessions:</p> <p><script src="https://gist.github.com/lucasjellema/061993cfaee25ffbf8e311c88dbc84b0.js"></script></p> <p>The post <a rel="nofollow" href="https://technology.amis.nl/2017/08/10/when-screen-scraping-became-api-calling-gathering-oracle-openworld-2017-session-catalog-with-node/">When Screen Scraping became API calling &#8211; Gathering Oracle OpenWorld 2017 Session Catalog with Node</a> appeared first on <a rel="nofollow" href="https://technology.amis.nl">AMIS Oracle and Java Blog</a>.</p> Lucas Jellema https://technology.amis.nl/?p=45551 Thu Aug 10 2017 03:57:38 GMT-0400 (EDT) Look and Feel – Feel Free to Go Crazy http://www.thatjeffsmith.com/archive/2017/08/look-and-feel-feel-free-to-go-crazy/ <p>Apparently SQL Developer doesn&#8217;t look super awesome on some Windows high-resolution displays (Macs are apparently A-OK!) 4 and 5k monitors. But that&#8217;s OK &#8211; it&#8217;s fixed in Java 9, and that appears to work just fine with SQL Developer v17.2.</p> <div id="attachment_6286" style="width: 850px" class="wp-caption aligncenter"><a href="http://www.thatjeffsmith.com/wp-content/uploads/2017/08/java9-0.jpg"><img src="http://www.thatjeffsmith.com/wp-content/uploads/2017/08/java9-0-1024x545.jpg" alt="" width="840" height="447" class="size-large wp-image-6286" /></a><p class="wp-caption-text">That&#8217;s no fun, but he got it fixed running Java 9 out of the box!</p></div> <p>But another question came up &#8211; how can I make SQL Developer look&#8230;different?</p> <blockquote class="twitter-tweet" data-lang="en"> <p lang="en" dir="ltr">There isn&#39;t an overall theme for all the parts of the app? I really want everything changed (connections and reports).</p> <p>&mdash; PIONTΞKDD (@piontekdd) <a href="https://twitter.com/piontekdd/status/895280554861527040">August 9, 2017</a></p></blockquote> <p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p> <p>Well, the easiest way is to look at your OS Theme settings.</p> <p>On Windows 10, that would be something like this.</p> <div id="attachment_6283" style="width: 1034px" class="wp-caption aligncenter"><a href="http://www.thatjeffsmith.com/wp-content/uploads/2017/08/java9-5.png"><img src="http://www.thatjeffsmith.com/wp-content/uploads/2017/08/java9-5.png" alt="" width="1024" height="689" class="size-full wp-image-6283" /></a><p class="wp-caption-text">Yeah, this applies to your ENTIRE OS.</p></div> <p>Pick something you like&#8230;a LOT.</p> <p>OK, let&#8217;s see how this looks.</p> <div id="attachment_6284" style="width: 1034px" class="wp-caption aligncenter"><a href="http://www.thatjeffsmith.com/wp-content/uploads/2017/08/java9-4.png"><img src="http://www.thatjeffsmith.com/wp-content/uploads/2017/08/java9-4.png" alt="" width="1024" height="544" class="size-full wp-image-6284" /></a><p class="wp-caption-text">Cool?</p></div> <p>This won&#8217;t happen by default. You&#8217;ll have to:</p> <ol> <li>Go into preferences, and change the Look and Feel from &#8216;Oracle&#8217; to whatever your OS is</li> <li>Restart SQL Developer</li> <li>Play around with your OS setting to find something you like/li> </ol> <div id="attachment_3597" style="width: 995px" class="wp-caption aligncenter"><a href="http://www.thatjeffsmith.com/wp-content/uploads/2012/02/lookANDfeel.png"><img src="http://www.thatjeffsmith.com/wp-content/uploads/2012/02/lookANDfeel.png" alt="" width="985" height="710" class="size-full wp-image-3597" /></a><p class="wp-caption-text">Oracle looks better but Windows will run leaner</p></div> <p>I&#8217;d show you how this works on a Mac, but I don&#8217;t have a Mac anymore. Same key concept, change your look and feel to OS X. Then configure your Mac as appropriate.</p> <h3>Other Benefits</h3> <p>Apart from being able to control exactly how your application will look, you&#8217;re ALSO telling Java that it can rely on the OS to take care of this. If you&#8217;re going to use the Oracle Look and Feel, then that will &#8216;cost a bit extra&#8217; &#8211; or in other words, it might take more resources to run. If your machine is already a bit slow, this won&#8217;t help matters any.</p> <p>And if you have a hi-res display, you&#8217;ll definitely want to use the native look and feel&#8230;and run Java 9 JDK on Windows. </p> <div id="attachment_6285" style="width: 1034px" class="wp-caption aligncenter"><a href="http://www.thatjeffsmith.com/wp-content/uploads/2017/08/java9-1.png"><img src="http://www.thatjeffsmith.com/wp-content/uploads/2017/08/java9-1.png" alt="" width="1024" height="583" class="size-full wp-image-6285" /></a><p class="wp-caption-text">You&#8217;ll PROBABLY be OK, but we can&#8217;t officially support you since Java 9 is still in beta.</p></div> <!-- Easy AdSense Unfiltered [count: 3 is not less than 3] --> thatjeffsmith http://www.thatjeffsmith.com/?p=6281 Wed Aug 09 2017 14:33:13 GMT-0400 (EDT) LEAP#331 Getting Blinky with PIC Assembler http://blog.tardate.com/2017/08/leap331-getting-blinky-with-pic-assembler.html <p>Not necessarily everyone’s first choice for embedded development these days, PIC is perhaps now more a right-of-passage! It was <a href="https://www.youtube.com/watch?v=p2rZwR9oM_k">Julian Ilett</a> who finally inspired me to try this myself. One thing that held me back was the perception that you have to “downgrade” to Windows in order to get anything going. Challenge accepted, and I quickly learned that the MPLAB X IDE is just perfect and makes PIC development on MacOSX a piece of cake. So let’s get blinky.. As always, <a href="https://github.com/tardate/LittleArduinoProjects/tree/master/PIC/GettingBlinky">all notes, schematics and code are in the Little Electronics &amp; Arduino Projects repo on GitHub</a></p> <iframe class="youtube-embed" src="https://www.youtube.com/embed/pw0WdkqDNsM" frameborder="0" allowfullscreen=""></iframe> http://blog.tardate.com/2017/08/leap331-getting-blinky-with-pic-assembler.html Wed Aug 09 2017 03:15:16 GMT-0400 (EDT) What Employers Want : Stop Making the Same Mistakes http://feedproxy.google.com/~r/TheOracleBaseBlog/~3/-fju-NeVzOQ/ <p><img class="alignleft wp-image-7330" src="https://oracle-base.com/blog/wp-content/uploads/2017/07/application-1915343_640.jpg" alt="" width="150" height="100" />This isn&#8217;t so much what employers want, as some observations about mistakes I see people make all the time. Think of it as ways to avoid wasting time and making yourself look stupid!</p> <ul> <li>Do your research. Know what you are applying for and who you are applying too.</li> <li>Apply to a company in the appropriate way, typically described on their website. If you don&#8217;t use their preferred channels, you&#8217;ve probably wasted your time.</li> <li>As an example of the previous point, many companies in the UK only employ via agencies, often having exclusive deals with those agencies. They will typically make this clear on their websites.</li> <li>Tailor your resume and covering letter for each specific application, emphasising the relevant and de-emphasising the irrelevant for that role. One size fits all is not your best approach.</li> <li>Your LinkedIn profile can be useful, but by it&#8217;s nature it is general. Don&#8217;t send a CV only to have it contradicted by what you say on LinkedIn.</li> <li>Don&#8217;t bullshit! It&#8217;s so obvious.</li> <li>Don&#8217;t send an email saying things like, &#8220;Got any jobs? Check out my LinkedIn profile!&#8221; You&#8217;ve just made a bad impression by clearly not doing your research, and probably deselected yourself!</li> <li>Don&#8217;t contact people (like me) that clearly don&#8217;t employ people and ask for a job. Your lack of research makes you look stupid.</li> <li>Companies will often Google you to find out more about you. If your social media is full of pictures and videos of you drunk and mooning at the camera, or you publish controversial material and opinions you are probably not going to get the job. Definitely don&#8217;t trash previous companies or colleagues. Clean up your public presence as best you can.</li> </ul> <p>Check out the rest of this series <a href="https://oracle-base.com/blog/2017/07/31/what-employers-want-a-series-of-posts/">here</a>.</p> <p>Cheers</p> <p>Tim&#8230;</p> <hr style="border-top:black solid 1px" /><a href="https://oracle-base.com/blog/2017/08/09/what-employers-want-stop-making-the-same-mistakes/">What Employers Want : Stop Making the Same Mistakes</a> was first posted on August 9, 2017 at 8:14 am.<br />©2012 "<a href="http://www.oracle-base.com/blog">The ORACLE-BASE Blog</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.<br /><img src="http://feeds.feedburner.com/~r/TheOracleBaseBlog/~4/-fju-NeVzOQ" height="1" width="1" alt=""/> Tim... https://oracle-base.com/blog/?p=7315 Wed Aug 09 2017 03:14:21 GMT-0400 (EDT) Getting started with MapR-DB Table Replication http://tugdualgrall.blogspot.com/2017/08/getting-started-with-mapr-db-table.html Tugdual Grall tag:blogger.com,1999:blog-785895453418216075.post-5324281058832816181 Tue Aug 08 2017 04:15:00 GMT-0400 (EDT) What Employers Want : Make Yourself Stand Out http://feedproxy.google.com/~r/TheOracleBaseBlog/~3/CIrlBYy5AVw/ <p><img class="alignleft wp-image-7330" src="https://oracle-base.com/blog/wp-content/uploads/2017/07/application-1915343_640.jpg" alt="" width="150" height="100" />If a job is worth applying for, lots of other people will be applying for it as well. What makes you stand out?</p> <p>If you&#8217;ve taken on board some of the previous posts you already know about qualifications, enthusiasm, self-sufficiency, communication skills, confidence etc. If you&#8217;ve got those things down, you are on the right path, but what else can you do? Here are some of my opinions&#8230;</p> <p><strong>Blog</strong> : Over the course of your career you should keep writing about your subject. It will improve you as an individual and it&#8217;s public evidence that you take an interest in your subject. Over time it will improve your confidence when it comes to written work. If you do it for long enough you may even be able to build a profile for yourself, which may open doors for you. Just remember that not every company is populated by people who follow what&#8217;s happening in the community. There are no guarantees.</p> <p><strong>Present</strong> : Similar to blogging, this will improve you are a person and make you more confident in group situations, like job interviews and meetings. This could be something you do for colleagues as part of knowledge spreading, or you could venture out into the wider Oracle community, which can be helpful from a networking perspective.</p> <p><strong>User Groups and Local Meetups</strong> : Whether you are a student or already in work, try getting involved with a user group or local meetup in your area. You will learn a lot and you will meet people. Make the effort to interact. Especially at the local meetups, you will hear people speaking about their companies and vacancies etc. I&#8217;m not suggesting you turn up and ask for a job, but if you&#8217;ve built up a relationship with the people in your local meetup, you may find new opportunities. Networking is important!</p> <p>Followers of the blog will know I&#8217;m rather biased where blogging and public speaking are concerned, but I can&#8217;t emphasise enough how this will change you as a person. Invest in yourself and the rest will fall into place!</p> <p>Remember, if it is a good job you will be in competition with a lot of people for it. What makes you stand out from the crowd? If the answer is nothing, then you have some work to do before you will be able to get a job like that!</p> <p>Check out the rest of this series <a href="https://oracle-base.com/blog/2017/07/31/what-employers-want-a-series-of-posts/">here</a>.</p> <p>Cheers</p> <p>Tim&#8230;</p> <hr style="border-top:black solid 1px" /><a href="https://oracle-base.com/blog/2017/08/08/what-employers-want-make-yourself-stand-out/">What Employers Want : Make Yourself Stand Out</a> was first posted on August 8, 2017 at 7:42 am.<br />©2012 "<a href="http://www.oracle-base.com/blog">The ORACLE-BASE Blog</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.<br /><img src="http://feeds.feedburner.com/~r/TheOracleBaseBlog/~4/CIrlBYy5AVw" height="1" width="1" alt=""/> Tim... https://oracle-base.com/blog/?p=7324 Tue Aug 08 2017 02:42:31 GMT-0400 (EDT) Upgrading an Amazon EC2 Delphix Target, Part IV http://dbakevlar.com/2017/08/upgrading-amazon-ec2-delphix-target-part-iv/ <div class="pf-content"><p>It&#8217;s finally time to upgrade our Linux Target!  OK, so we&#8217;re not going to upgrade the way a DBA would normally upgrade a database server when we&#8217;re working with virtualization.</p> <p><a href="http://dbakevlar.com/2017/08/upgrading-amazon-ec2-delphix-target-part-iv/zim1/" rel="attachment wp-att-7042"><img class="alignnone wp-image-7042" src="https://i2.wp.com/dbakevlar.com/wp-content/uploads/2017/08/zim1.gif?resize=343%2C257" alt="" data-recalc-dims="1" /></a></p> <p>So far, we&#8217;ve completed:</p> <ul> <li>1.  Updating our instances so that we&#8217;ll have a GUI interface if we&#8217;ll need one.</li> <li>2.  Installed Oracle on the Linux Source and upgraded our Dsource database to 12c</li> </ul> <p>&nbsp;</p> <p>Now we&#8217;re done with our Linux Source and onto our <strong>Linux Target.</strong></p> <h3>Install and Configure VNC and Oracle</h3> <p>We&#8217;ll run through and install and configure the VNC Viewer requirements just like we did in <strong><a href="http://dbakevlar.com/2017/07/upgrading-amazon-ec2-delphix-source-part/">Part I</a></strong> and <a href="http://dbakevlar.com/2017/07/upgrading-amazon-ec2-delphix-source-part-ii/"><strong>Part II</strong></a><strong>.</strong> We&#8217;ll also install Oracle, but only this time, we&#8217;ve performed a software installation <strong>only</strong>.</p> <p><a href="http://dbakevlar.com/2017/08/upgrading-amazon-ec2-delphix-target-part-iv/target_12c_install_1/" rel="attachment wp-att-6964"><img class="alignnone size-large wp-image-6964" src="https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/target_12c_install_1.png?resize=600%2C463" alt="" srcset="https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/target_12c_install_1.png?resize=1024%2C790 1024w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/target_12c_install_1.png?resize=300%2C231 300w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/target_12c_install_1.png?resize=768%2C593 768w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/target_12c_install_1.png?w=1200 1200w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/target_12c_install_1.png?w=1800 1800w" sizes="(max-width: 600px) 100vw, 600px" data-recalc-dims="1" /></a></p> <p>We&#8217;ll install the Enterprise Edition and we&#8217;ll make sure to install it in the same path as we did on our Linux Source, (<strong>/u01/app/oracle/product/12.1/db_1</strong>)  We&#8217;re not installing the multi-tenant, as we didn&#8217;t configure this on our source, either.</p> <p>Once that is complete, it&#8217;s time to get our VDB&#8217;s upgraded.</p> <p>The first thing you need to remember is that the VDBs are simply virtual images of our Dsource that is already UPGRADED.</p> <h3>Add the New Oracle Home to the Linux Target</h3> <p>Log into Delphix Admin Console and click on Environments.</p> <p>click on the Linux Target and then click on the refresh button:</p> <p><a href="http://dbakevlar.com/2017/08/upgrading-amazon-ec2-delphix-target-part-iv/screen-shot-2017-07-27-at-1-59-27-pm/" rel="attachment wp-att-6966"><img class="alignnone wp-image-6966" src="https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-27-at-1.59.27-PM.png?resize=242%2C180" alt="" srcset="https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-27-at-1.59.27-PM.png?w=536 536w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-27-at-1.59.27-PM.png?resize=300%2C223 300w" sizes="(max-width: 242px) 100vw, 242px" data-recalc-dims="1" /></a></p> <p>Click on the Databases tab and you&#8217;ll now see the DB12c Oracle home is now present in the list:</p> <p><a href="http://dbakevlar.com/2017/08/upgrading-amazon-ec2-delphix-target-part-iv/screen-shot-2017-07-27-at-2-01-26-pm/" rel="attachment wp-att-6967"><img class="alignnone size-large wp-image-6967" src="https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-27-at-2.01.26-PM.png?resize=600%2C273" alt="" srcset="https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-27-at-2.01.26-PM.png?resize=1024%2C466 1024w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-27-at-2.01.26-PM.png?resize=300%2C136 300w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-27-at-2.01.26-PM.png?resize=768%2C349 768w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-27-at-2.01.26-PM.png?w=1200 1200w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-27-at-2.01.26-PM.png?w=1800 1800w" sizes="(max-width: 600px) 100vw, 600px" data-recalc-dims="1" /></a></p> <h3>Prep VDBs for switch to new home</h3> <p>Copy your environments profile from 11g.env to 12c.env.  Update the Oracle home to point to the new 12c home and save the file.</p> <p>Now I have three VDBs on this target:</p> <pre class="p1"><span class="s1">[delphix@linuxtarget ~]$ ps -ef | grep pmon</span> <span class="s1">delphix <span class="Apple-converted-space">  </span>7501 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Jul12 ?<span class="Apple-converted-space">        </span>00:01:17 ora_pmon_devdb</span> <span class="s1">delphix <span class="Apple-converted-space">  </span>8301 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Jul06 ?<span class="Apple-converted-space">        </span>00:01:49 ora_pmon_VEmp6</span> <span class="s1">delphix<span class="Apple-converted-space">  </span>16875 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Jul05 ?<span class="Apple-converted-space">        </span>00:01:57 ora_pmon_qadb</span></pre> <p>Log into the Linux Target and from the command line, set the environment and log into each database via SQL Plus and shut it down.</p> <p><span style="background-color: #00ffff; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 13px;">. 11g.env</span></p> <pre>export ORACLE_SID=VEmp6f sqlplus / as sysdba shutdown immediate; exit;</pre> <p>and so on and so forth&#8230;. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>Copy all the init files from the 11g Oracle Home/dbs for the VDBs over to the 12c Oracle Home/dbs/.</p> <p><b>And this is where it all went wrong for two of the VDBs&#8230;</b></p> <p><strong><span style="color: #ff0000;">Back on the Delphix Admin Console, click on Manage &#8211;&gt; Datasets</span></strong></p> <p><strong><span style="color: #ff0000;">Click on each of the VDBs involved.  Click on Configuration &#8211;&gt; Upgrade, (up arrow icon) and say yes to upgrading.  Update the Oracle home from the 11g in the drop down to the new 12c Oracle home and click the gold check mark to confirm.</span></strong></p> <p><em>OK, so this is what I WOULD have done for all three VDBs if I&#8217;d been working with JUST VDBs, but this is where it gets a bit interesting and I had to go off the beaten path for a solution.  I&#8217;m unsure if this is documented anywhere inside Delphix, (Delphix Support is awesome, so I&#8217;m sure they already know this, but for my own sanity) here&#8217;s the situation and the answer.  The environment I am working on is built off of AWS AMIs that consist of Delphix containers.  Containers are very powerful, allowing you to &#8220;package&#8221; up a database, application and other tiers of virtualized environments, offering the ability to manage it all as one piece.  This was the situation for the qadb and the devdb instances.</em></p> <p>Due to this, I couldn&#8217;t run the upgrade inside the Delphix Admin console since these two VDBs were part of Delphix &#8220;data pods.&#8221;  The following are the steps to then address this change.</p> <h4>Remove the Containers, (Subsequently the VDBs as Well!)</h4> <ol> <li>Log into the Delphix&#8217;s Jet Stream.</li> <li>Upper right hand corner, click on Usage Overview</li> <li>Scroll down and click on Employee Application, (its the template for the VDBs in question..)</li> <li>At the bottom of this page, you&#8217;ll see the two containers that possess the VDBs as part of them.  To the right, there is a trash can icon for delete.  (The reason this is an option is that I have a template built for this container and it will be very simple to recreate a VDB and vfile to repopulate this container, (matter of minutes, max.)</li> </ol> <p><a href="http://dbakevlar.com/2017/08/upgrading-amazon-ec2-delphix-target-part-iv/screen-shot-2017-07-28-at-11-18-53-am/" rel="attachment wp-att-6970"><img class="alignnone size-large wp-image-6970" src="https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-28-at-11.18.53-AM.png?resize=600%2C119" alt="" srcset="https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-28-at-11.18.53-AM.png?resize=1024%2C203 1024w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-28-at-11.18.53-AM.png?resize=300%2C60 300w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-28-at-11.18.53-AM.png?resize=768%2C152 768w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-28-at-11.18.53-AM.png?w=1522 1522w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-28-at-11.18.53-AM.png?w=1200 1200w" sizes="(max-width: 600px) 100vw, 600px" data-recalc-dims="1" />       5. </a>Delete the two containers that are controlling the administration of these two VDBs still pointing to the 11g home.</p> <h4>Create the New VDBs and Virtualized Application, (Vfiles)</h4> <p>Now, log into the Delphix Admin console.</p> <ol> <li>Provision two VDBs from the orcl source db, one as devdb and another as qadb, just as it was before, both on the Linux target.</li> <li>Provision two vfiles of the Web Application, one as QA_Web and the other as DEV_Web, port numbers 1080 and 2080, keeping all other defaults.</li> <li>Once completed, (couple minutes, max) then lets return to Jet Stream and create the containers that will house the system.</li> </ol> <h4>Create the New Containers From the Template</h4> <p>In Jet Stream</p> <ol> <li>Click on Data Management in the upper right hand corner</li> <li>You will be brought to the Templates tab, click on the Employee Application template</li> <li>Click on Add Container</li> </ol> <p><a href="http://dbakevlar.com/2017/08/upgrading-amazon-ec2-delphix-target-part-iv/screen-shot-2017-07-28-at-11-31-00-am/" rel="attachment wp-att-6971"><img class="alignnone size-large wp-image-6971" src="https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-28-at-11.31.00-AM.png?resize=600%2C127" alt="" srcset="https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-28-at-11.31.00-AM.png?resize=1024%2C216 1024w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-28-at-11.31.00-AM.png?resize=300%2C63 300w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-28-at-11.31.00-AM.png?resize=768%2C162 768w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-28-at-11.31.00-AM.png?w=1200 1200w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-28-at-11.31.00-AM.png?w=1800 1800w" sizes="(max-width: 600px) 100vw, 600px" data-recalc-dims="1" /></a></p> <ol> <li>Name:  &#8220;Dev 12c Container&#8221;, Owner: Dev and choose the devdb and the DEV_Web for the sources, then complete the container creation.</li> <li>Click again on Add Container</li> <li>Name: &#8220;QA 12c Container&#8221;, Owner: QA and choose the qadb and the QA_Web for the sources, then complete the container creation.</li> </ol> <p>This will take just a moment to finish creating and that&#8217;s all there is to it.  You now have two DB12c environments that are completely containerized and upgraded from their previous 11g state.</p> <p><a href="http://dbakevlar.com/2017/08/upgrading-amazon-ec2-delphix-target-part-iv/screen-shot-2017-07-28-at-11-34-54-am/" rel="attachment wp-att-6972"><img class="alignnone wp-image-6972" src="https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-28-at-11.34.54-AM.png?resize=437%2C254" alt="" srcset="https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-28-at-11.34.54-AM.png?resize=1024%2C596 1024w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-28-at-11.34.54-AM.png?resize=300%2C174 300w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-28-at-11.34.54-AM.png?resize=768%2C447 768w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-28-at-11.34.54-AM.png?w=1200 1200w" sizes="(max-width: 437px) 100vw, 437px" data-recalc-dims="1" /></a></p> <p>Our source shows we&#8217;re using our DB12c upgraded database:</p> <p><a href="http://dbakevlar.com/2017/08/upgrading-amazon-ec2-delphix-target-part-iv/screen-shot-2017-07-28-at-11-35-10-am/" rel="attachment wp-att-6973"><img class="alignnone wp-image-6973" src="https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-28-at-11.35.10-AM.png?resize=441%2C384" alt="" srcset="https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-28-at-11.35.10-AM.png?resize=1024%2C893 1024w, https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-28-at-11.35.10-AM.png?resize=300%2C262 300w, https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-28-at-11.35.10-AM.png?resize=768%2C670 768w, https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-28-at-11.35.10-AM.png?w=1514 1514w, https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-28-at-11.35.10-AM.png?w=1200 1200w" sizes="(max-width: 441px) 100vw, 441px" data-recalc-dims="1" /></a></p> <p>And we can also see everything is upgraded and happy in our Delphix Administration Console.  <a href="http://dbakevlar.com/2017/08/upgrading-amazon-ec2-delphix-target-part-iv/screen-shot-2017-07-28-at-11-35-38-am/" rel="attachment wp-att-6974"><img class="alignnone wp-image-6974" src="https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-28-at-11.35.38-AM.png?resize=333%2C696" alt="" srcset="https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-28-at-11.35.38-AM.png?resize=490%2C1024 490w, https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-28-at-11.35.38-AM.png?resize=144%2C300 144w, https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-28-at-11.35.38-AM.png?w=614 614w" sizes="(max-width: 333px) 100vw, 333px" data-recalc-dims="1" /></a></p> <p>It may have taken a little longer for me to upgrade with the complexity of the containers introduced, but the power of data pods is exceptional when we&#8217;re managing our data, the database and the application as one piece anyway.  Shouldn&#8217;t we treat it as one?</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <!-- Easy Plugin for AdSense Unfiltered [count: 3 is not less than 3] --></div><br><br><img src="https://i2.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/ico-tag.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> Tags:&nbsp;&nbsp;<br><br><div style="width:100%"><table align="left" width="100%" cellspacing="0" cellpadding="0" bgcolor="#f1f1f1" border="0px;"> <tbody> <tr bgcolor="#ffffff"><td align="center" width="17%" valign="top"> <span class="sb_title">Del.icio.us</span><br> <a href="http://del.icio.us/post?url=http://dbakevlar.com/2017/08/upgrading-amazon-ec2-delphix-target-part-iv/&title=Upgrading an Amazon EC2 Delphix Target, Part IV"> <img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/delicious.gif?w=600" border="0" align="absmiddle" data-recalc-dims="1"> </a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">Facebook</span><br> <a href="http://www.facebook.com/share.php?u=http://dbakevlar.com/2017/08/upgrading-amazon-ec2-delphix-target-part-iv/"><img src="https://i0.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/facebook_icon.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">TweetThis</span><br> <a href="http://twitthis.com/twit?url=http://dbakevlar.com/2017/08/upgrading-amazon-ec2-delphix-target-part-iv/&title=Upgrading an Amazon EC2 Delphix Target, Part IV"><img src="https://i2.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tweet.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">Digg</span><br> <a href="http://digg.com/submit?phase=2&url=http://dbakevlar.com/2017/08/upgrading-amazon-ec2-delphix-target-part-iv/&title=Upgrading an Amazon EC2 Delphix Target, Part IV"><img src="https://i0.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/digg.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">StumbleUpon</span><br> <a href="http://www.stumbleupon.com/submit?url=http://dbakevlar.com/2017/08/upgrading-amazon-ec2-delphix-target-part-iv/&title=Upgrading an Amazon EC2 Delphix Target, Part IV"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/stumble.gif?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td></tr> </tbody></table></div><br><div style="clear:both"></div><div style="background:#EEEEEE; padding:0px 0px 0px 15px; margin:10px 0px 0px 0px;"><div style="padding:5px 0px 5px 0px;"><b>Comments:</b>&nbsp;&nbsp;<a href="http://dbakevlar.com/2017/08/upgrading-amazon-ec2-delphix-target-part-iv/#respond">0 (Zero), Be the first to leave a reply!</a></div><br><div style="clear:both"></div><div style="padding:13px 0px 5px 0px;"><span style="border-bottom:1px dashed #003399;padding-bottom:4px;"><strong>You might be interested in this:</strong></span>&nbsp;&nbsp;<br><ul style="margin:0; padding:0; padding-top:10px; padding-bottom:5px;"><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2012/04/presentation-slides-from-mow-2012-available/" >Presentation Slides from MOW 2012 Available!</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2016/12/oracle-user-groups-and-the-lack-of-support-from-oracle/" >Oracle User Groups and the (Lack of) Support from Oracle</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2015/05/re-adding-a-database-to-the-awr-warehouse-without-losing-historical-snapshots/" >Re-Adding a Database to the AWR Warehouse Without Losing Historical Snapshots</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2015/10/be-the-change-you-want-to-see/" >Be the Change You Want to See</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2014/11/em12c-rel-4-oms-and-omr-health-part-ii/" >EM12c, Rel. 4, OMS and OMR Health, Part II</a></li></ul></div></div><hr style="color:#EBEBEB" /><small>Copyright © <a href="http://dbakevlar.com">DBA Kevlar</a> [<a href="http://dbakevlar.com/2017/08/upgrading-amazon-ec2-delphix-target-part-iv/">Upgrading an Amazon EC2 Delphix Target, Part IV</a>], All Right Reserved. 2017.</small><br><p>The post <a rel="nofollow" href="http://dbakevlar.com/2017/08/upgrading-amazon-ec2-delphix-target-part-iv/">Upgrading an Amazon EC2 Delphix Target, Part IV</a> appeared first on <a rel="nofollow" href="http://dbakevlar.com">DBA Kevlar</a>.</p> dbakevlar http://dbakevlar.com/?p=6963 Mon Aug 07 2017 09:44:40 GMT-0400 (EDT) What Employers Want : Confidence http://feedproxy.google.com/~r/TheOracleBaseBlog/~3/F4qvRs4yWhU/ <p><img class="alignleft wp-image-7330" src="https://oracle-base.com/blog/wp-content/uploads/2017/07/application-1915343_640.jpg" alt="" width="150" height="100" />Confidence is an attractive quality. When you get as far as the interview stage, the way you present yourself will have a big influence on how you are perceived.</p> <p>Outwardly, confidence is all about body language. You don&#8217;t have to be a confident person to act like you are confident. Confidence can be practiced/faked. <a href="https://en.wikipedia.org/wiki/Amy_Cuddy">Amy Cuddy</a> does a great TED talk about this called &#8220;<a href="https://www.youtube.com/watch?v=Ks-_Mh1QhMc">Your body language may shape who you are</a>&#8220;. The idea being &#8220;fake it until you make it&#8221;, or better still, &#8220;fake it until you become it&#8221;. Take 20 minutes out of your day and watch this video. You will not regret it!</p> <p>I am a firm believer in this. I&#8217;m not naturally a confident person. I wasn&#8217;t born able to stand in front of hundreds of people and present. It is a skill I&#8217;ve worked on, and still do. Over time you adapt and it gets easier. Remember, &#8220;fake it until you become it&#8221;. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>I have another series devoted to <a href="/blog/2014/01/13/public-speaking-tips/">public speaking tips</a> where I discuss this. Unless you&#8217;ve practiced speaking in public, how do you hope to present yourself properly in an important interview? If you&#8217;ve presented to a few hundred people, sitting in an interview panel will be simple.</p> <p>Work on your <a href="/blog/2014/01/13/public-speaking-tips/">verbal</a> and <a href="/blog/2015/05/29/writing-tips-summary/">written</a> skills so you can present yourlf in a confident manner, even if you are internally <a href="http://www.urbandictionary.com/define.php?term=bricking%20it">bricking it</a>. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>Check out the rest of this series <a href="https://oracle-base.com/blog/2017/07/31/what-employers-want-a-series-of-posts/">here</a>.</p> <p>Cheers</p> <p>Tim&#8230;</p> <hr style="border-top:black solid 1px" /><a href="https://oracle-base.com/blog/2017/08/07/what-employers-want-confidence/">What Employers Want : Confidence</a> was first posted on August 7, 2017 at 7:41 am.<br />©2012 "<a href="http://www.oracle-base.com/blog">The ORACLE-BASE Blog</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.<br /><img src="http://feeds.feedburner.com/~r/TheOracleBaseBlog/~4/F4qvRs4yWhU" height="1" width="1" alt=""/> Tim... https://oracle-base.com/blog/?p=7303 Mon Aug 07 2017 02:41:59 GMT-0400 (EDT) LEAP#330 Any-to-any Polarity DC Power Adapter http://blog.tardate.com/2017/08/leap330-any-to-an-polarity-dc-power-adapter.html <p>I recently got a device that has a 2.1mm power connector but in centre-negative configuration. Unfortunately I don’t have any centre-negative power packs on hand. I could of course just rewire one, but decided it might be the time to make up a generic any-to-any connector. In addition to centre-positive and centre-negative output plugs, I included a 9V battery bypass and polarity rectifier, so that the input supports both centre-positive and centre-negative connections. And of course an LED power indicator. As always, <a href="https://github.com/tardate/LittleArduinoProjects/tree/master/Electronics101/Power/Any2AnyPowerPack">all notes, schematics and code are in the Little Electronics &amp; Arduino Projects repo on GitHub</a> <a href="https://github.com/tardate/LittleArduinoProjects/tree/master/Electronics101/Power/Any2AnyPowerPack"><img src="http://leap.tardate.com/Electronics101/Power/Any2AnyPowerPack/assets/Any2AnyPowerPack_build.jpg" alt="hero_image" /></a></p> http://blog.tardate.com/2017/08/leap330-any-to-an-polarity-dc-power-adapter.html Sun Aug 06 2017 06:54:06 GMT-0400 (EDT) LEAP#329 On DC Power Connectors http://blog.tardate.com/2017/08/leap329-on-dc-power-connectors.html <p>How many types of power connector is there? In addition to just two bits of wire twisted together, it is pretty much an uncountable selection! Just some notes on the main types, including bypass configurations. As always, <a href="https://github.com/tardate/LittleArduinoProjects/tree/master/Electronics101/Power/Connectors">all notes are in the Little Electronics &amp; Arduino Projects repo on GitHub</a> <a href="https://github.com/tardate/LittleArduinoProjects/tree/master/Electronics101/Power/Connectors"><img src="http://leap.tardate.com/Electronics101/Power/Connectors/assets/Connectors_build.jpg" alt="hero_image" /></a></p> http://blog.tardate.com/2017/08/leap329-on-dc-power-connectors.html Sun Aug 06 2017 06:53:37 GMT-0400 (EDT) 12c MultiTenant Posts -- 7 : Adding Custom Service to PDB (nonRAC/GI) http://hemantoracledba.blogspot.com/2017/08/12c-multitenant-posts-7-adding-custom.html <div dir="ltr" style="text-align: left;" trbidi="on">Earlier I have already demonstrated adding and managing custom services in a RAC environment in a <a href="https://hemantoracledba.blogspot.com/2017/04/12cr1-rac-posts-9-adding-service-to-pdb.html" target="_blank">blog post</a> and a <a href="https://youtu.be/ffq0LbnyVMw" target="_blank">video</a>.<br /><br />But what if you are running Single Instance and not using Grid Infrastructure?&nbsp; The srvctl command in Grid Infrastructure is what you'd use to add and manage services in RAC and Oracle Restart environments. &nbsp;But without Grid Infrastructure, you can fall back on DBMS_SERVICE.<br /><br />The DBMS_SERVICE API has been available since Oracle 8i -- when Services were introduced.<br /><br />Here is a quick demo of some facilities with DBMS_SERVICE.<br /><br />1. &nbsp;Adding a Custom Service into a PDB :<br /><br /><pre>$sqlplus system/oracle@NEWPDB<br /><br />SQL*Plus: Release 12.2.0.1.0 Production on Sat Aug 5 22:52:21 2017<br /><br />Copyright (c) 1982, 2016, Oracle. All rights reserved.<br /><br />Last Successful login time: Mon Jul 10 2017 22:22:30 +08:00<br /><br />Connected to:<br />Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production<br /><br />SQL&gt; show con_id <br /><br />CON_ID<br />------------------------------<br />4<br />SQL&gt; <br />SQL&gt; execute dbms_service.create_service('HR','HR');<br /><br />PL/SQL procedure successfully completed.<br /><br />SQL&gt; execute dbms_service.start_service('HR');<br /><br />PL/SQL procedure successfully completed.<br /><br />SQL&gt; <br /></pre><br /><br />Connecting to the service via tnsnames.<br /><br /><pre>SQL&gt; connect hemant/hemant@HR<br />Connected.<br />SQL&gt; show con_id<br /><br />CON_ID<br />------------------------------<br />4<br />SQL&gt; <br /></pre><br /><br />2. &nbsp;Disconnecting all connected users on the Service<br /><br /><pre>$sqlplus system/oracle@NEWPDB<br /><br />SQL*Plus: Release 12.2.0.1.0 Production on Sat Aug 5 23:02:47 2017<br /><br />Copyright (c) 1982, 2016, Oracle. All rights reserved.<br /><br />Last Successful login time: Sat Aug 05 2017 23:02:28 +08:00<br /><br />Connected to:<br />Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production<br /><br />SQL&gt; <br />SQL&gt; execute dbms_service.disconnect_session(-<br />&gt; service_name=&gt;'HR',disconnect_option=&gt;DBMS_SERVICE.IMMEDIATE);<br /><br />PL/SQL procedure successfully completed.<br /><br />SQL&gt; <br />In the HEMANT session connected to HR :<br />SQL&gt; show con_id<br />ERROR:<br />ORA-03113: end-of-file on communication channel<br />Process ID: 5062<br />Session ID: 67 Serial number: 12744<br /><br /><br />SP2-1545: This feature requires Database availability.<br />SQL&gt; <br /></pre><br /><br />(Instead of DBMS_SERVICE.IMMEDIATE, we could also specify DBMS_SERVICE.POST_TRANSACTION).<br /><br /><br />3. &nbsp;Shutting down a Service without closing the PDB :<br /><br /><pre>SQL&gt; execute dbms_service.stop_service('HR');<br /><br />PL/SQL procedure successfully completed.<br /><br />SQL&gt; <br />SQL&gt; connect hemant/hemant@HR<br />ERROR:<br />ORA-12514: TNS:listener does not currently know of service requested in connect<br />descriptor<br /><br /><br />Warning: You are no longer connected to ORACLE.<br />SQL&gt; <br /></pre><br /><br />Does restarting the Database, restart this custom service?<br /><br /><pre>SQL&gt; connect / as sysdba<br />Connected.<br />SQL&gt; shutdown immediate;<br />Database closed.<br />Database dismounted.<br />ORACLE instance shut down.<br />SQL&gt; startup<br />ORACLE instance started.<br /><br />Total System Global Area 838860800 bytes<br />Fixed Size 8798312 bytes<br />Variable Size 343936920 bytes<br />Database Buffers 478150656 bytes<br />Redo Buffers 7974912 bytes<br />Database mounted.<br />Database opened.<br />SQL&gt; alter pluggable databas all open;<br />alter pluggable databas all open<br /> *<br />ERROR at line 1:<br />ORA-02000: missing DATABASE keyword<br /><br /><br />SQL&gt; alter pluggable database all open;<br /><br />Pluggable database altered.<br /><br />SQL&gt; connect hemant/hemant@NEWPDB<br />Connected.<br />SQL&gt; connect hemant/hemant@HR<br />ERROR:<br />ORA-12514: TNS:listener does not currently know of service requested in connect<br />descriptor<br /><br /><br />Warning: You are no longer connected to ORACLE.<br />SQL&gt; <br />SQL&gt; connect system/oracle@NEWPDB<br />Connected.<br />SQL&gt; execute dbms_service.start_service('HR');<br /><br />PL/SQL procedure successfully completed.<br /><br />SQL&gt; connect hemant/hemant@HR<br />Connected.<br />SQL&gt; <br /></pre><br /><br />I had to reSTART this custom service ('HR') after the PDB was OPENed.<br /><br />Services is a facility that has been available since 8i non-OPS. &nbsp;However, Services were apparently only being used by most sites in RAC environments.<br /><br />Services allow you to run multiple "applications" (each application advertised as a Service) within the same (one) database.<br /><br />Note that, in&nbsp;a RAC environment, srvctl configuration of Services can configure auto-restart of the Service.<br /><br /><br /><b>UPDATE </b>: A Video using a different PDB (in the same CDB) and ServiceName is <a href="https://youtu.be/r5qSi_CcLE8" target="_blank">posted here</a>.<br />.<br />.<br />.<br /><br /></div> Hemant K Chitale tag:blogger.com,1999:blog-1931548025515710472.post-9030857262541803573 Sat Aug 05 2017 11:20:00 GMT-0400 (EDT) What Employers Want : Communication Skills http://feedproxy.google.com/~r/TheOracleBaseBlog/~3/4rQbe5t14_M/ <p><img class="alignleft wp-image-7330" src="https://oracle-base.com/blog/wp-content/uploads/2017/07/application-1915343_640.jpg" alt="" width="150" height="100" />It&#8217;s important you can present yourself in a confident and professional manner when it comes to interviews, but this also carries over into a work environment.</p> <p>Once you get a job you need to be able to communicate effectively with your colleagues and with your customers/users. I know you think your silent genius act makes you look special, but it doesn&#8217;t. The initial interaction between humans involves building rapport. It&#8217;s kind-of difficult to build rapport with someone who refuses to talk to you and can&#8217;t look you in the eye. You need to get your communication skills sorted before you try to enter the job market.</p> <p>If you are working in IT your written skills will be really important. You will need to communicate with colleagues and customers/users in a concise, but accurate way. People won&#8217;t read waffle (<a href="https://en.wikipedia.org/wiki/Wikipedia:Too_long;_didn%27t_read">TL;DR</a>), but they will demand enough detail to make sense of what you are saying. A quick read through your typical IT forum will make you realise that most people have terrible written skills and are incapable of stringing together a logical argument. You don&#8217;t have to be a prize winning novelist, but you need to be able to make yourself understood.</p> <p>Remember in a previous post I wrote about enthusiasm. It doesn&#8217;t matter how enthusiastic you are if you can&#8217;t express it!</p> <p>I&#8217;ve written some post on <a href="/blog/2015/05/29/writing-tips-summary/">writing tips</a> and <a href="/blog/2014/01/13/public-speaking-tips/">public speaking tips</a>. I think this is important for you as someone who is trying to enter the job market, or someone who is trying to move up the ladder. Don&#8217;t lose out on an opportunity because you&#8217;ve neglected your soft skills!</p> <p>Check out the rest of this series <a href="https://oracle-base.com/blog/2017/07/31/what-employers-want-a-series-of-posts/">here</a>.</p> <p>Cheers</p> <p>Tim&#8230;</p> <hr style="border-top:black solid 1px" /><a href="https://oracle-base.com/blog/2017/08/04/what-employers-want-communication-skills/">What Employers Want : Communication Skills</a> was first posted on August 4, 2017 at 7:28 am.<br />©2012 "<a href="http://www.oracle-base.com/blog">The ORACLE-BASE Blog</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.<br /><img src="http://feeds.feedburner.com/~r/TheOracleBaseBlog/~4/4rQbe5t14_M" height="1" width="1" alt=""/> Tim... https://oracle-base.com/blog/?p=7301 Fri Aug 04 2017 02:28:15 GMT-0400 (EDT) ODTUG Kscope17 Social Media Lounge Interviews http://www.kscope18.odtug.com/p/bl/et/blogaid=740&source=1 ODTUG Kscope17 Social Media Lounge interview videos are now live on the ODTUG YouTube! Read the short recaps and watch the interviews with ODTUG Kscope17 Conference Committee Members, ODTUG Board Members, Oracle Professionals, Oracle ACEs, ACEd, ACE Associates, and ACE Alumni. ODTUG http://www.kscope18.odtug.com/p/bl/et/blogaid=740&source=1 Thu Aug 03 2017 14:07:33 GMT-0400 (EDT) ODTUG Kscope17 Social Media Lounge Interviews http://www.odtug.com/p/bl/et/blogaid=740&source=1 ODTUG Kscope17 Social Media Lounge interview videos are now live on the ODTUG YouTube! Read the short recaps and watch the interviews with ODTUG Kscope17 Conference Committee Members, ODTUG Board Members, Oracle Professionals, Oracle ACEs, ACEd, ACE Associates, and ACE Alumni. ODTUG http://www.odtug.com/p/bl/et/blogaid=740&source=1 Thu Aug 03 2017 14:07:33 GMT-0400 (EDT) LEAP#328 555 Timer VCO http://blog.tardate.com/2017/08/leap328-555-timer-vco.html <p>The control terminal of the 555 timer can be used to adjust the upper and lower thresholds with an applied voltage. This produces a very simple voltage-controlled oscillator. The few measurements I’ve taken show that control adjustments have as much impact on duty cycle as frequency. That may be what you want … or not! As always, <a href="https://github.com/tardate/LittleArduinoProjects/tree/master/Electronics101/555Timer/VoltageControlledOscillator">all notes, schematics and code are in the Little Electronics &amp; Arduino Projects repo on GitHub</a> <a href="https://github.com/tardate/LittleArduinoProjects/tree/master/Electronics101/555Timer/VoltageControlledOscillator"><img src="http://leap.tardate.com/Electronics101/555Timer/VoltageControlledOscillator/assets/VoltageControlledOscillator_build.jpg" alt="hero_image" /></a></p> http://blog.tardate.com/2017/08/leap328-555-timer-vco.html Thu Aug 03 2017 13:43:20 GMT-0400 (EDT) Successful Evangelism http://dbakevlar.com/2017/08/successful-evangelism/ <div class="pf-content"><p>I&#8217;ve been asked what it takes to be a successful evangelist and realizing that what makes one successful at it, is often like holding sand in your hands- no matter how tightly you hold your fists, it&#8217;s difficult to contain the grains.</p> <p><a href="http://dbakevlar.com/2017/08/successful-evangelism/sand/" rel="attachment wp-att-6983"><img class="alignnone wp-image-6983" src="https://i2.wp.com/dbakevlar.com/wp-content/uploads/2017/08/sand.gif?resize=356%2C268" alt="" data-recalc-dims="1" /></a></p> <p>The term evangelist is one that either receives very positive or very negative responses.  I&#8217;m not a fan of the term, but no matter if you use this term or call them advocates, representative, influencer-  it doesn&#8217;t matter, they are essential to the business, product or technology that they become the voice for.</p> <p>Those that I view as successful evangelists in the communities that I am part of?</p> <ul> <li><a href="https://twitter.com/KentGraziano">Kent Graziano</a>&#8211;  the data warrior of Snowflake</li> <li><a href="https://twitter.com/thatjeffsmith">Jeff Smith</a>&#8211; Oracle&#8217;s SQL Developer</li> <li><a href="https://twitter.com/GFritchey">Grant Fritchey</a>&#8211; Redgate&#8217;s Scary DBA and MVP</li> <li><a href="https://twitter.com/OTNDBDev">Laura Ramsey</a>&#8211; Oracle, OTN Community Manager</li> <li><a href="https://twitter.com/IrishSQL">Rie Irish</a>&#8211; Pass WIT and SQL Server MVP</li> <li><a href="https://twitter.com/sfonplsql">Steve Feuerstein</a>&#8211; Oracle&#8217;s PL/SQL Advocate</li> </ul> <p>There are a number of folks I&#8217;m sure I missed I also admire as I interact and observe their contributions, but these are a few that come to mind when I think of fellow evangelists.</p> <h4><em>What makes an evangelist successful?  It may not be what you think.</em></h4> <p><strong>1. It&#8217;s Not Just About the Company</strong></p> <p>Most companies think they hire an evangelist to promote and market the company and yet, when all you do it push out company info, company marketing- People <strong>STOP</strong> listening to you.  What you say, do and are interested in should drive people to want to know more about you, including the company you work for and what that company does.</p> <p>All of these folks talk about interests outside of work.  They post about their lives, their interests and contribute to their communities.  This is what it means to be really authentic and setting an example.  People want to be more like them because they see the value they add to the world than just talking points.</p> <p><strong>2.  They&#8217;re Authentic</strong></p> <p>Authenticity is something most find very elusive.  If you&#8217;re just copying what another does, there&#8217;s nothing authentic about that.  There&#8217;s nothing wrong finding a tip or tidbit that someone else is doing and adopting it, but it has to WORK for you.  I was just part of a conversation yesterday, where Jeff and I were discussing that he doesn&#8217;t use Buffer, (social media scheduling tool) where I live by it.  It doesn&#8217;t work for Jeff and there&#8217;s nothing wrong with that.  We are individuals and what makes us powerful evangelists is that we figured out what works for each of us.</p> <p><strong>3.  In the Know</strong></p> <p>As a technical evangelist, you can&#8217;t just read the docs and think you&#8217;re going to be received well.  Theory is not practice and I&#8217;ve had a couple disagreements with managers explaining why I needed to work with the product.  I&#8217;ve had to battle for hardware to build out what I&#8217;ve been expected to talk on and only once I didn&#8217;t fight for it and I paid for it drastically.  I won&#8217;t write on a topic unless I can test it out on my own.  Being in the trenches provides you a point of view no document can provide.</p> <p>Documentation is secondary to experience.</p> <p><strong>4.  Your View is Outward</strong></p> <p>This is a difficult one for most companies when they&#8217;re trying to create evangelists from internal employees.  Those that may be deeply involved at the company level may interact well with others, but won&#8217;t redirect to an external view.  I&#8217;ve had people ask me why my husband isn&#8217;t doing as much as I am in the community.  Due to his position, he must be more internally and customer facing.  My job is very separate from my fellow employees.  I must always be focused outward and interact at least 95% of my time with the community.  You&#8217;ll notice all of the folks listed are continually interacting with people outside of their company and are considered very &#8220;approachable.&#8221;</p> <p>We volunteer our time in the community- user groups, board of directors, events and partnering with companies.  We socialize, as we know our network is essential to the companies we represent.</p> <p><strong>5.  We Promote</strong></p> <p>I wish I did more public promotion like I see some of these other folks.  I&#8217;m like my parents-  I stand up for others and support them on initiatives and goals.  I do a lot of mentoring, but less when I&#8217;m blogging.  My mother was never about empty compliments and I did take after her on this.  I&#8217;m just not very good at remembering to compliment people on social media and feel I lack in this area, but I continually watch others do this for folks in the community and this is so important.</p> <p>We ensure to work with those that may need introductions in our network, support in the community and reach out to offer our help.  In the public view, this is quite transparent, so when others pay this forward or return the favor, it can appear that people just bend over backwards for us, but we often have been their for the folks in question in the past, with no expectations and people remembered this.</p> <p>We do promote our company, but for the right reasons.  The company has done something good for the community, has something special going on, but rarely do we push out anything marketing, as it just doesn&#8217;t come across very well from us.  It&#8217;s not <strong><em>authentic.</em></strong></p> <h4>Additional Recommendations</h4> <ul> <li>Refrain from internet arguments, social media confrontations</li> </ul> <p>I&#8217;m not saying to be a pushover.  I literally have friends muted and even blocked.  There&#8217;s nothing wrong with NOT being connected to individuals that have very different beliefs or social media behavior.  You shouldn&#8217;t take it <strong>personally</strong>&#8211; this is <strong>professional</strong> and you should treat it as such.</p> <p>You may find, (especially for women and people of color) that certain individuals will challenge you on ridiculous topics and battle you on little details.  This is just the standard over-scrutinizing that we go through and if it&#8217;s not too bad, I tell people to just ignore it and not respond.  If it escalates, don&#8217;t hesitate to mute or block the person.  You&#8217;re not there to entertain them and by removing your contributions from their feed- &#8220;out of sight, out of mind&#8221;, offering peace to both of you&#8230; <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <ul> <li>Use automation tools and send out content that INTERESTS YOU.</li> </ul> <p>Contribute what you want and limit to a certain percentage of what your company wants and be authentic.  Find your own niche and space and don&#8217;t send out &#8220;noise.&#8221;</p> <p>There are a ton of tools out there.  Test out <a href="https://buffer.com/app">buffer</a>, <a href="http://signup.hootsuite.com/">hootsuite</a>, <a href="https://klout.com/home">Klout</a> or <a href="https://sumall.com/">SumAll</a> to make social media contributions easier.  If you don&#8217;t have a blog, create one and show what you&#8217;re working on and don&#8217;t worry about the topic.  You&#8217;ll be surprised that if you just write on challenges you&#8217;re facing, how you&#8217;ve solved a problem you&#8217;ve come across and write on a topic that you couldn&#8217;t find a solution to online, people will find value in your contributions.</p> <ul> <li>Interact and be receptive of others</li> </ul> <p>Have fun with social media and have real conversations.  People do appreciate honesty with respect.  Answer comments and questions on your blog.  Respond to questions on forums for your product and promote other people&#8217;s events and contributions.</p> <p>When people approach you at an event or send you a direct message, try to engage with them and thank them for having the guts to come up and speak with you.  It&#8217;s not easy for most people to approach someone they don&#8217;t know.</p> <ul> <li>Volunteer and Contribute</li> </ul> <p>We used to be part of our community and as our world has changed with technology, the term community has changed.  These communities wouldn&#8217;t exist without the contributions of people.  Volunteer to help with user groups, events and forums.  Don&#8217;t just volunteer to be on a board of directors and not do anything.  It&#8217;s not something to just put on your CV and think you&#8217;re contributing.  There is incredible power in the simple act of doing, so DO.  Provide value and ask how you can help.  Kent has been a board member, a volunteer and even a president of user groups.  Jeff has run content selections and run events even though he&#8217;s limited in what he&#8217;s allowed to do as an Oracle employee and Rie promotes information about every woman speaker at SQL Saturday events along with all she does to run the Atlanta SQL Saturday, (largest one in the US!)  I won&#8217;t even try to name all the different contributions that Grant is part of, including the new attendees event at Pass Summit, (Microsoft&#8217;s version of Oracle Open World for my Oracle peeps!)</p> <p>For those companies that are thinking-  &#8220;I hired an evangelist, so I want them to be all about me and all invested in the company.&#8221;  If they do, you&#8217;ll never have the successful evangelist that will be embraced by the community, able to promote your product/company in a powerful, grassroots way and if their eyes are always looking inside, they will miss everything going on outside and as we all know, technology moves fast.  Look away and you&#8217;ll miss it.</p> <p>&nbsp;</p> <!-- Easy Plugin for AdSense Unfiltered [count: 3 is not less than 3] --></div><br><br><img src="https://i2.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/ico-tag.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> Tags:&nbsp;&nbsp;<a href="http://dbakevlar.com/tag/evangelism/" rel="tag">Evangelism</a><br><br><div style="width:100%"><table align="left" width="100%" cellspacing="0" cellpadding="0" bgcolor="#f1f1f1" border="0px;"> <tbody> <tr bgcolor="#ffffff"><td align="center" width="17%" valign="top"> <span class="sb_title">Del.icio.us</span><br> <a href="http://del.icio.us/post?url=http://dbakevlar.com/2017/08/successful-evangelism/&title=Successful Evangelism"> <img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/delicious.gif?w=600" border="0" align="absmiddle" data-recalc-dims="1"> </a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">Facebook</span><br> <a href="http://www.facebook.com/share.php?u=http://dbakevlar.com/2017/08/successful-evangelism/"><img src="https://i0.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/facebook_icon.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">TweetThis</span><br> <a href="http://twitthis.com/twit?url=http://dbakevlar.com/2017/08/successful-evangelism/&title=Successful Evangelism"><img src="https://i2.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tweet.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">Digg</span><br> <a href="http://digg.com/submit?phase=2&url=http://dbakevlar.com/2017/08/successful-evangelism/&title=Successful Evangelism"><img src="https://i0.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/digg.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">StumbleUpon</span><br> <a href="http://www.stumbleupon.com/submit?url=http://dbakevlar.com/2017/08/successful-evangelism/&title=Successful Evangelism"><img src="https://i1.wp.com/dbakevlar.com/wp-connt/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/stumble.gif?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td></tr> </tbody></table></div><br><div style="clear:both"></div><div style="background:#EEEEEE; padding:0px 0px 0px 15px; margin:10px 0px 0px 0px;"><div style="padding:5px 0px 5px 0px;"><b>Comments:</b>&nbsp;&nbsp;<a href="http://dbakevlar.com/2017/08/successful-evangelism/#comments">1 (One) on this item</a></div><br><div style="clear:both"></div><div style="padding:13px 0px 5px 0px;"><span style="border-bottom:1px dashed #003399;padding-bottom:4px;"><strong>You might be interested in this:</strong></span>&nbsp;&nbsp;<br><ul style="margin:0; padding:0; padding-top:10px; padding-bottom:5px;"><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2011/07/you-know-youre-doing-too-much-database-work-when/" >You Know You're Doing Too Much Database Work When...</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2015/03/distributed_transactions_and_em12c_page_perf/" >Distributed Transactions and EM12c Page Performance</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2013/07/oracle-pluggable-databases-easy-as-pie-dbca-pie-that-is/" >Oracle Pluggable Databases- Easy as Pie, DBCA Pie, That Is...</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2014/08/renaming-an-oracle-apache-target-in-em12c/" >Renaming an Oracle Apache Target in EM12c</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2017/07/devops-ruining-dba/" >DevOps is Ruining the DBA?</a></li></ul></div></div><hr style="color:#EBEBEB" /><small>Copyright © <a href="http://dbakevlar.com">DBA Kevlar</a> [<a href="http://dbakevlar.com/2017/08/successful-evangelism/">Successful Evangelism</a>], All Right Reserved. 2017.</small><br><p>The post <a rel="nofollow" href="http://dbakevlar.com/2017/08/successful-evangelism/">Successful Evangelism</a> appeared first on <a rel="nofollow" href="http://dbakevlar.com">DBA Kevlar</a>.</p> dbakevlar http://dbakevlar.com/?p=6982 Thu Aug 03 2017 12:54:12 GMT-0400 (EDT) Rebuilding Indexes https://jonathanlewis.wordpress.com/2017/08/03/rebuilding-indexes/ <p>One of the special events that can make it necessary to rebuild an index is the case of the <em>&#8220;massive DML&#8221;</em>, typically a bulk delete that purges old data from a table. You may even find cases where it&#8217;s a good idea to mark a couple of your indexes as unusable before doing a massive delete and then rebuild them after the delete.</p> <p>Despite the fact that a massive delete is an obvious special case it&#8217;s still not necessary in many cases to worry about a rebuild afterwards because the space made free by the delete will be smoothly reused over time with very little variation in performance. There is, however, one particular feature that increases the probability of a rebuild becoming necessary &#8211; global (or globally partitioned) indexes on partitioned tables. The problem (and the absence of problem in non-partitioned tables) is in the nature of the <em><strong>rowid</strong></em>.</p> <p>For non-partitioned tables, and partitioned tables with local indexes, the <em><strong>rowid</strong></em> stored in an index is (assuming we&#8217;re thinking only of <em><strong>heap</strong></em> tables) stored as a sequence of 6 bytes consisting, in order, of: <em>(tablespace relative file number, block number within file, row number within block)</em>. If the table is non-partitioned, or if this is an index segment from a locally partitioned index, all the index entries will be pointing to the same table segment and Oracle knows which segment that is from the data dictionary information &#8211; so Oracle can derive the <em><strong>data_object_id</strong></em> of the table segment and convert the <em>tablespace relative file number</em> into the <em>absolute file number</em> to navigate to the right row in the table.</p> <p>When the index is global or globally partitioned any index entry may point to any of the table&#8217;s segments, so the <em><strong>rowid</strong></em> that is stored in the index is expanded by a further 4 bytes to hold the <em><strong>data_object_id</strong></em> of the table segment it is pointing to &#8211; and the <em><strong>data_object_id</strong></em> is the leading component: (data_object_id, tablespace relative file number, block number within file, row number within block). Think about what this means when you start to drop &#8220;old&#8221; partitions and add new partitions. Compare this with what happens when you simply delete a large volume of old data from a table and starting inserting new data. There&#8217;s an important difference to the way in which indexes will evolve.</p> <h3>Purging data</h3> <p>When you delete a large volume of data from a (simple, heap) table you will create a lot of empty space in a lot of existing table blocks. If that delete is supposed to get rid of &#8220;old&#8221; data (and to keep the description simple we&#8217;ll assume it&#8217;s the first time you&#8217;ve done this) it&#8217;s very likely that the delete will result in lots of empty blocks near the start of the table &#8211; rows that were inserted at the same time will tend to be physically close to each other in the table. This means that future inserts will soon start to reuse those table blocks. Think about what this means for index entries &#8211; especially for non-unique keys.</p> <p>Assume you have 100 rows with value &#8216;XXX&#8217; for an indexed column. Breaking the <em><strong>rowid</strong></em> into its component parts the index entries will be (<em>&#8216;XXX&#8217;,{file_id, block_id, row_number}</em>).  Now assume you delete the oldest 10 rows then, over time, insert 10 more rows with the same key value. You&#8217;ve deleted the 10 index entries with the lowest values for <em>(file_id, block_id)</em> but the space that&#8217;s become available in the table will be in and around exactly that range of blocks &#8211; so the new index entries will probably end up looking very similar to the deleted index entries and inserted in and around the existing index entries for value &#8216;XXX&#8217;, so over time the index is unlikely to allocate much new space.</p> <p>Now think about what happens when your table it partitioned but the index is global; your index entries are (<em>&#8216;XXX&#8217;,{<strong>data_object_id</strong>, file_id, block_id, row_number}</em>). When you drop the oldest partition you will probably<sup>[1]</sup> delete all the index entries with the lowest <em><strong>data_object_id</strong></em>. When you start inserting new rows for &#8216;XXX&#8217; the new table partition will have a <em><strong>data_object_id</strong></em> that is going to be higher than any previous <em><strong>data_object_id</strong></em> &#8211; which means you&#8217;re going to be inserting rows into the right-hand (high-value) edge of this section of the index. In some cases &#8211; typically those where you have a couple of leaf blocks per key value &#8211; the index may end up growing significantly because the insertion point for rows in the new partition isn&#8217;t in the leaf block with the available space, and it won&#8217;t be until you&#8217;ve done a few more bulk deletes and the leaf blocks relating to the oldest table partitions become completely empty that the space can be reused.</p> <p><a href="http://community.oracle.com/thread/4068494"><em><strong>An example</strong></em></a> of this type of behaviour <span style="text-decoration:underline;"><em>probably</em></span> appeared on the OTN database forum quite recently.  Of course, there are various reasons why indexes can become inefficient, and the degree of inefficiency may only become noticeable over a fairly long period of time; moreover there are various reasons why global indexes are a little problematic, and various reasons why a bulk delete (which is what executing &#8220;alter table drop partition&#8221; does to a global index) has unpleasant side effects dependent somewhat on the number (and size) of the partitions and on how many you try to drop in one go.</p> <p>There&#8217;s not  a lot you can do about this quirk of global indexes, but it&#8217;s always worth taking extra care with partitioned tables and focusing even more carefully on a strategic review of indexes:</p> <ul> <li>Does this index really need to exist at all</li> <li>Could this index be replaced by a selective function-based index</li> <li>Does this index really need to be global / globally partitioned</li> <li>How big is this index compared to the size it ought to be</li> <li>Should this index be (basic) compressed</li> <li>Is this index likely to be disrupted by a historic purge &#8211; or is there another reason for its undesirable behaviour</li> </ul> <p>&nbsp;</p> <p><strong><sup>[1]</sup></strong> probably delete entries with the lowest data_object_id&#8221; &#8211; I have to say this because if you&#8217;ve executed a &#8220;move partition&#8221; at any time a new <em><strong>data_object_id</strong></em> will have been generated for the partition, so the oldest partition could, in principal, have the highest <em><strong>data_object_id</strong></em>. The issue of changing <em><strong>data_object_id</strong></em>s brings a whole new level of complexity to global indexes &#8211; but only in a few special cases, fortunately.</p> <p>&nbsp;</p> <p>&nbsp;</p><br /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonathanlewis.wordpress.com/17395/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonathanlewis.wordpress.com/17395/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=jonathanlewis.wordpress.com&#038;blog=491988&#038;post=17395&#038;subd=jonathanlewis&#038;ref=&#038;feed=1" width="1" height="1" /> Jonathan Lewis http://jonathanlewis.wordpress.com/?p=17395 Thu Aug 03 2017 08:00:22 GMT-0400 (EDT) What Employers Want : Self-Sufficiency http://feedproxy.google.com/~r/TheOracleBaseBlog/~3/CqNG9AUeDyI/ <p><img class="alignleft wp-image-7330" src="https://oracle-base.com/blog/wp-content/uploads/2017/07/application-1915343_640.jpg" alt="" width="150" height="100" />Of the people and companies I spoke to, self-sufficiency was a common thread. They were looking for traits like the following in prospective employees.</p> <ul> <li><strong>The ability to learn for themselves</strong>. Of course companies will be looking to train you, but they don&#8217;t want a wet lettuce that sits waiting for the next handout of knowledge. You have to take some personal responsibility.</li> <li><strong>Willing to make decisions</strong>. There are a lot of people who refuse to step up to the plate when someone has got to make decisions. Typically those people will be the first to start moaning when things don&#8217;t go as planned. When push comes to shove you have to be willing to get in there and make a decision.</li> <li><strong>Willing to take responsibility for their actions</strong>. Sometimes you will make the wrong decision, or make a mistake. It&#8217;s important you can recognise your mistake, admit it and move on. Some people will spend incredible amounts of energy trying to hide their mistakes, or prove they were somehow correct. If they just owned up and moved on things would be better for everyone.</li> <li><strong>Willing to ask for help when it is appropriate</strong>. As much as you need to be self-sufficient, you need to know when it is right to ask for help. Nobody likes to work with a leach that never takes responsibility for things, but by the same token you don&#8217;t want someone to spend weeks figuring out something you could have pointed out to them in a couple of minutes. Finding that balance is important.</li> <li><strong>Never bullshit!</strong> I can&#8217;t stress enough how important this point is. Saying I don&#8217;t know is a perfectly valid response. People can smell bullshit a mile off and it&#8217;s going to make you look stupid. Be honest and you won&#8217;t have a problem. It takes a surprising amount of confidence to say I don&#8217;t know. People will respect you for it! In an interview you can always redirect the question like, &#8220;I don&#8217;t know, but it sounds similar to X, which I have done&#8230;&#8221;, so the &#8220;I don&#8217;t know&#8221; becomes an opening into you speaking about something you are good at&#8230;</li> </ul> <p>Check out the rest of this series <a href="https://oracle-base.com/blog/2017/07/31/what-employers-want-a-series-of-posts/">here</a>.</p> <p>Cheers</p> <p>Tim&#8230;</p> <hr style="border-top:black solid 1px" /><a href="https://oracle-base.com/blog/2017/08/03/what-employers-want-self-sufficiency/">What Employers Want : Self-Sufficiency</a> was first posted on August 3, 2017 at 7:30 am.<br />©2012 "<a href="http://www.oracle-base.com/blog">The ORACLE-BASE Blog</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.<br /><img src="http://feeds.feedburner.com/~r/TheOracleBaseBlog/~4/CqNG9AUeDyI" height="1" width="1" alt=""/> Tim... https://oracle-base.com/blog/?p=7299 Thu Aug 03 2017 02:30:48 GMT-0400 (EDT) Upcoming Webcasts: Getting Started with SQL Developer, SQLcl, & ORDS http://www.thatjeffsmith.com/archive/2017/08/upcoming-webcasts-getting-started-with-sql-developer-sqlcl-ords/ <p>I get the impression that many of you have thought about getting more acquainted with our development tools and platforms here at Oracle. But I ALSO get the impression that many of you just haven&#8217;t had the time.</p> <div id="attachment_6277" style="width: 384px" class="wp-caption aligncenter"><a href="http://www.thatjeffsmith.com/wp-content/uploads/2017/08/webinar1.png"><img class="size-full wp-image-6277" src="http://www.thatjeffsmith.com/wp-content/uploads/2017/08/webinar1.png" alt="" width="374" height="125" /></a><p class="wp-caption-text">Listen, learn, ask questions &#8211; get started!</p></div> <p>So, I&#8217;m officially inviting you to participate in a series of upcoming webinars I&#8217;ll be hosting.</p> <h3>How they &#8216;work&#8217;</h3> <p>We&#8217;ll use a online conference solution that lets me share my desktop with you. I&#8217;ll be doing live-demo after a few powerpoint slides to get the business stuff out of the way.</p> <div id="attachment_6278" style="width: 1034px" class="wp-caption aligncenter"><a href="http://www.thatjeffsmith.com/wp-content/uploads/2017/08/zoom1.png"><img src="http://www.thatjeffsmith.com/wp-content/uploads/2017/08/zoom1.png" alt="" width="1024" height="550" class="size-full wp-image-6278" /></a><p class="wp-caption-text">Hopefully I won&#8217;t be my myself <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p></div> <p>You&#8217;ll be able to ask questions as we go &#8211; via voice OR chat.</p> <p>I&#8217;ll answer questions as I can, or take notes to get back to you afterwards.</p> <p>Try to get in a few minutes before start time &#8211; you may need to install the Zoom software, but it&#8217;s very quick and easy.</p> <h3>Getting Started with Oracle SQL Developer</h3> <p>You missed it! But that&#8217;s OK, I recorded it.</p> <p><iframe width="853" height="480" src="https://www.youtube.com/embed/EguMf4HbPU8" frameborder="0" allowfullscreen></iframe></p> <h3>Getting Started with SQLcl</h3> <p>You missed it! But that&#8217;s OK, I recorded it.</p> <p><iframe width="853" height="480" src="https://www.youtube.com/embed/ecgijS76jvw" frameborder="0" allowfullscreen></iframe></p> <h3>Getting Started with REST and the Oracle Database via ORDS</h3> <p>Tuesday, August 22nd @ 1PM ET</p> <p>Oracle REST Data Services powers https access to your Oracle Database. We&#8217;ll cover just exactly what REST is, why a database person should care, how to quickly stand up ORDS, and we&#8217;ll cover a few examples of working with simple SQL statements, scripts, and stored procedures.</p> <p><em>Oracle Zoom Conference Details </em><br /> <a href="https://oracle.zoom.us/j/533810725">Join the meeting.</a> </p> <p>Audio Information &#8211; Join by phone:<br /> +1 408 638 0968 or +1 646 558 8656 US Toll<br /> Meeting ID: 364 715 166<br /> <a href="https://oracle.zoom.us/zoomconference?m=bIGFmKK4r6V49_qAyYscObzMLyCN6TAh">International numbers available</a><br /> New to Zoom? In preparation, please download the Zoom &#8220;Desktop Client&#8221; ahead of the meeting. Visit <a href="https://oracle.zoom.us">https://oracle.zoom.us</a> for more information.</p> <!-- Easy AdSense Unfiltered [count: 3 is not less than 3] --> thatjeffsmith http://www.thatjeffsmith.com/?p=6276 Wed Aug 02 2017 08:59:15 GMT-0400 (EDT) What Employers Want : Enthusiasm http://feedproxy.google.com/~r/TheOracleBaseBlog/~3/QtrNEMUj-LQ/ <p><img class="alignleft wp-image-7330" src="https://oracle-base.com/blog/wp-content/uploads/2017/07/application-1915343_640.jpg" alt="" width="150" height="100" />When I looked through the feedback I received from a variety of people and companies I kept seeing the same words and phrases. I think when you read them you will understand why.</p> <ul> <li>Enthusiasm</li> <li>Passion</li> <li>Energy</li> <li>Intelligence</li> <li>Fresh thinking</li> <li>Diversity of talent/interest</li> </ul> <p>Companies are not necessarily looking for the finished article. They are looking for people who can adapt, grow and bring something to the company. This is especially true of graduate employees. It&#8217;s going to be difficult for you to reach your potential unless you can tick some of these boxes.</p> <p>When you are applying for a job you have to ask yourself what your application says about you in relation to these points. If your application doesn&#8217;t display these traits you&#8217;ve failed. If you are not able to display these traits in an interview you&#8217;ve failed. We&#8217;ll talk about how to show these traits in other posts in the series.</p> <p>Ultimately, if you are not enthusiastic and passionate about what you do you are going to struggle, but if you are enthusiastic, don&#8217;t hide it!</p> <p>Check out the rest of this series <a href="https://oracle-base.com/blog/2017/07/31/what-employers-want-a-series-of-posts/">here</a>.</p> <p>Cheers</p> <p>Tim&#8230;</p> <hr style="border-top:black solid 1px" /><a href="https://oracle-base.com/blog/2017/08/02/what-employers-want-enthusiasm/">What Employers Want : Enthusiasm</a> was first posted on August 2, 2017 at 8:03 am.<br />©2012 "<a href="http://www.oracle-base.com/blog">The ORACLE-BASE Blog</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.<br /><img src="http://feeds.feedburner.com/~r/TheOracleBaseBlog/~4/QtrNEMUj-LQ" height="1" width="1" alt=""/> Tim... https://oracle-base.com/blog/?p=7297 Wed Aug 02 2017 03:03:01 GMT-0400 (EDT) Basic Index Compression Made Simple (It Ain’t Easy) https://richardfoote.wordpress.com/2017/08/02/basic-index-compression-made-simple-it-aint-easy/ I&#8217;ve discussed Index Compression a number of times as it&#8217;s an excellent way of minimizing the size of indexes without unnecessary, expensive index rebuilds. One of the nice features of Advanced Index Compression is that not only does it potentially compress indexes more effectively than possible with Basic Index Compression, but that it also eliminates [&#8230;]<img alt="" border="0" src="https://pixel.wp.com/b.gif?host=richardfoote.wordpress.com&#038;blog=2301564&#038;post=4969&#038;subd=richardfoote&#038;ref=&#038;feed=1" width="1" height="1" /> Richard Foote http://richardfoote.wordpress.com/?p=4969 Tue Aug 01 2017 22:07:13 GMT-0400 (EDT) What Employers Want : Qualifications http://feedproxy.google.com/~r/TheOracleBaseBlog/~3/vCuIiMylan8/ <p><img class="alignleft wp-image-7330" src="https://oracle-base.com/blog/wp-content/uploads/2017/07/application-1915343_640.jpg" alt="" width="150" height="100" />The companies and individuals I spoke to tended to split into 3 main groups regarding their attitudes to qualifications. Let&#8217;s call them yes, no, maybe. Remember, this question was mostly aimed at their attitudes towards graduate employees, so it doesn&#8217;t necessarily relate to their views on certifications. I&#8217;ve discussed that subject <a href="/blog/2017/06/28/learning-new-things-what-about-examscertification/">here</a>.</p> <h1>Yes</h1> <p>Some companies care a lot about qualifications. This can be for several reasons.</p> <ul> <li>They consider themselves the best, so they only employ the best.</li> <li>If you don&#8217;t have the best grades it &#8220;proves&#8221; you don&#8217;t care about the subject.</li> <li>They get so many applicants they throw away every application that doesn&#8217;t meet certain criteria, just to make their lives easier. It&#8217;s part of their HR process.</li> </ul> <p>Don&#8217;t bother applying to companies like this unless your grades are top notch. You are wasting your time and theirs. No matter how outstanding you think you are, your application is going straight for the bin.</p> <h1>No</h1> <p>Some companies don&#8217;t worry so much about qualifications, but maybe for different reasons than you might expect.</p> <ul> <li>Grades are irrelevant, it&#8217;s the person we care about.</li> <li>Everyone has great grades, so we look for other things.</li> <li>Grades mean nothing. We want experience.</li> <li>What have you done? What apps you&#8217;ve built? What open source contributions have you made? Community participation?</li> </ul> <p>This might sound like the easy option at first, but actually most of these companies that &#8220;don&#8217;t care about qualifications&#8221; are harder to get a job with than those that care about grades. They are looking for standout individuals. Chances are the people they are looking for happen to have amazing grades anyway, as well as being well rounded and self-motivated types. When several thousand people apply for that job, what makes you stand out?</p> <h1>Maybe</h1> <p>Most companies consider qualifications as part of the package, but it is not the deciding factor.</p> <h1>What Should You Do?</h1> <p>You should take the time to investigate the companies you are interested in. Contact their HR departments and find out their attitudes. It is incredibly lazy of you to just send an application without doing the research and expect to get an interview. Do some research to check they are the right company for you and you are the right person for them!</p> <p>Check out the rest of this series <a href="https://oracle-base.com/blog/2017/07/31/what-employers-want-a-series-of-posts/">here</a>.</p> <p>Cheers</p> <p>Tim&#8230;</p> <hr style="border-top:black solid 1px" /><a href="https://oracle-base.com/blog/2017/08/01/what-employers-want-qualifications/">What Employers Want : Qualifications</a> was first posted on August 1, 2017 at 8:47 am.<br />©2012 "<a href="http://www.oracle-base.com/blog">The ORACLE-BASE Blog</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.<br /><img src="http://feeds.feedburner.com/~r/TheOracleBaseBlog/~4/vCuIiMylan8" height="1" width="1" alt=""/> Tim... https://oracle-base.com/blog/?p=7295 Tue Aug 01 2017 03:47:37 GMT-0400 (EDT) Oracle connection manager http://oracledba.blogspot.com/2017/07/oracle-connection-manager.html <div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-vSfX2_szg8k/WX-Cmzz6ugI/AAAAAAAFZKQ/ye8TEEyEnfEZ4DsM9CxugJfjszaOc13lwCLcBGAs/s1600/Oracle%2BConnection%2BManager.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="821" data-original-width="1600" height="204" src="https://2.bp.blogspot.com/-vSfX2_szg8k/WX-Cmzz6ugI/AAAAAAAFZKQ/ye8TEEyEnfEZ4DsM9CxugJfjszaOc13lwCLcBGAs/s400/Oracle%2BConnection%2BManager.png" width="400" /></a></div><br />Connection manager is working as oracle SQL*NET proxy and firewall.<br />In this example, I am using Connection Manager of Oracle Database 12c Release 2 running on Linux x86_64<br /><br /><h4>Footprint</h4>Storage: 1.7 G<br />Memory: 5~28.4 MB<br /><br /><h4>Requires:</h4>Installation of Oracle Client in a separated folder than the database software<br />Register the connection manager in the grid infrastructure as a cluster resource<br /><br /><br /><h2>Configure and install on the intermediate host</h2>Download Oracle Database 12c Release 2 Client<br /><blockquote class="tr_bq">unzip linuxx64_12201_client.zip</blockquote>Change response file <extracted folder="">/client/response/client_install.rsp:</extracted><br /><blockquote class="tr_bq">UNIX_GROUP_NAME=<br />INVENTORY_LOCATION=<br />ORACLE_HOME=<br />ORACLE_BASE=<br />oracle.install.client.installType=Custom<br />oracle.install.client.customComponents=oracle.network.cman:12.2.0.1.0</blockquote>Start silent installation:<br /><blockquote class="tr_bq">cd <extracted folder="">/client<br />./runInstaller -silent -responseFile <extracted folder="">/client/response/client_install.rsp -ignoreSysPrereqs -ignorePrereq -noconfig -waitforcompletion -force -showProgress</extracted></extracted></blockquote>run root.sh<br /><blockquote class="tr_bq">sudo /oracle/product/12.2.0.1/client/root.sh</blockquote><br />copy a sample file of connection manager<br /><blockquote class="tr_bq">cp <cman_oracle_home>/network/admin/samples/cman.ora <cman_oracle_home>/network/admin/</cman_oracl_home></cman_oracle_home></blockquote><h4>edit the file <cman_oracle_home>/network/admin/cman.ora:</cman_oracle_home></h4>replace <fqhost> with current hostname (intermediate host)</fqhost><br />replace <lsnport> with connection manager port</lsnport><br />replace <logdir> with log directory&nbsp;</logdir><br />replace <trcdir> with trace directory</trcdir><br /><br />set the following environment variables<br /><blockquote class="tr_bq">ORACLE_HOME=/oracle/product/12.2.0.1/client<br />PATH=$ PATH:$ORACLE_HOME/bin<br />LD_LIBRARY_PATH=$ORACLE_HOME/lib</blockquote><h4>Starting the connection manager</h4>cmctl startup<br /><h4>Stopping the connection manager</h4>cmctl shutdown [abort]<br /><br />Register the connection manager as a resource in grid infrastructure or as a daemon in the Operating system.<br /><br /><h2>configure and install the client</h2>on the endpoint machine, i.e the client machine we have just to change the tnsnames.ora (or the OCI connection string)<br /><h4>original:</h4><blockquote class="tr_bq">db_alias =<br />&nbsp; (DESCRIPTION=<br />&nbsp; &nbsp; (ADDRESS=<br />&nbsp; &nbsp; &nbsp; (PROTOCOL=TCP)(HOST=<b>DatabaseHost</b>)(PORT=<b>DatabasePort</b>)<br />&nbsp; &nbsp; )<br />&nbsp; &nbsp; (CONNECT_DATA=<br />&nbsp; &nbsp; &nbsp; (SERVICE_NAME=<b>DatabaseService</b>)<br />&nbsp; &nbsp; )<br />&nbsp; )</blockquote><br /><h4>New:</h4><blockquote class="tr_bq">db_alias =<br />&nbsp; (DESCRIPTION=<br /><span style="color: red;">&nbsp; &nbsp; (SOURCE_ROUTE=YES)<br />&nbsp; &nbsp; (ADDRESS=<br />&nbsp; &nbsp; &nbsp; (PROTOCOL=TCP)(HOST=<b>ConnectionManagerHost</b>)(PORT=<b>ConnectionManagerPort</b>)<br />&nbsp; &nbsp; )</span><br />&nbsp; &nbsp; (ADDRESS=<br />&nbsp; &nbsp; &nbsp; (PROTOCOL=TCP)(HOST=<b>DatabaseHost</b>)(PORT=<b>DatabasePort</b>)<br />&nbsp; &nbsp; )<br />&nbsp; &nbsp; (CONNECT_DATA=<br />&nbsp; &nbsp; &nbsp; (SERVICE_NAME=<b>DatabaseService</b>)<br />&nbsp; &nbsp; )<br />&nbsp; )</blockquote>As long as the connection manager is up and working, we can make the connection and stay connected.<br /><br /> Yossi Nixon tag:blogger.com,1999:blog-6061714.post-1276969184715478942 Mon Jul 31 2017 15:22:00 GMT-0400 (EDT) Upgrading an Amazon EC2 Delphix Source, Part III http://dbakevlar.com/2017/07/upgrading-an-amazon-ec2-delphix-source-part-iii/ <div class="pf-content"><p>This is the Part III in a four part series on how to:</p> <ol> <li> Enable VNC Viewer access on Amazon EC2 hosts.</li> <li> Install DB12c and upgrade a Dsource for Delphix from 11g to 12c, (12.1)</li> <li> Update the Delphix Configuration to point to the newly upgraded 12c database and the new Oracle 12c home.</li> <li> Install DB12c and upgrade target VDBs for Delphix residing on AWS to 12.1 from the newly upgraded source.</li> </ol> <p><a href="http://dbakevlar.com/2017/07/upgrading-an-amazon-ec2-delphix-source-part-iii/scotty/" rel="attachment wp-att-6958"><img class="alignnone size-full wp-image-6958" src="https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/scotty.gif?resize=333%2C200" alt="" data-recalc-dims="1" /></a></p> <p>In <a href="http://dbakevlar.com/2017/07/upgrading-amazon-ec2-delphix-source-part-ii/">Part II</a>, we finished upgrading the Dsource database, but now we need to get it configured on the Delphix side.</p> <p>Log into the <strong><a href="https://docs.delphix.com/docs/delphix-administration/delphix-virtualization-user-interface">Delphix Admin console</a> </strong>to make the changes required to recognize the <strong><a href="https://docs.delphix.com/display/DOCS30/Delphix+Server+Overview">Dsource</a></strong> is now DB12c and has a new Oracle home.</p> <p>Log into the Delphix console as the <strong>Delphix_Admin</strong> user and go to the <strong>Manage &#8211;&gt; Environments.</strong></p> <p>Click on the Refresh button and let the system recognize the new Oracle Home for DB12c:</p> <p><a href="http://dbakevlar.com/2017/07/upgrading-an-amazon-ec2-delphix-source-part-iii/screen-shot-2017-07-27-at-1-33-07-pm/" rel="attachment wp-att-6959"><img class="alignnone wp-image-6959" src="https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-27-at-1.33.07-PM.png?resize=400%2C397" alt="" srcset="https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-27-at-1.33.07-PM.png?w=540 540w, https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-27-at-1.33.07-PM.png?resize=150%2C150 150w, https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-27-at-1.33.07-PM.png?resize=300%2C298 300w" sizes="(max-width: 400px) 100vw, 400px" data-recalc-dims="1" /></a></p> <p>Once complete, you should see the 12.1 installation we performed on the Linux Source now listed in the <strong>Environments</strong> list.</p> <p>Click on <strong>Manage &#8211;&gt; Datasets</strong> and find the Dsource 11g database and click on it.</p> <p>Click on the Configuration tab and click on the Upgrade icon, (a small up arrow in the upper right.)</p> <p><a href="http://dbakevlar.com/2017/07/upgrading-an-amazon-ec2-delphix-source-part-iii/screen-shot-2017-07-27-at-1-37-54-pm/" rel="attachment wp-att-6960"><img class="alignnone size-large wp-image-6960" src="https://i2.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-27-at-1.37.54-PM.png?resize=600%2C184" alt="" srcset="https://i2.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-27-at-1.37.54-PM.png?resize=1024%2C314 1024w, https://i2.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-27-at-1.37.54-PM.png?resize=300%2C92 300w, https://i2.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-27-at-1.37.54-PM.png?resize=768%2C235 768w, https://i2.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-27-at-1.37.54-PM.png?w=1200 1200w, https://i2.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-27-at-1.37.54-PM.png?w=1800 1800w" sizes="(max-width: 600px) 100vw, 600px" data-recalc-dims="1" /></a></p> <p>Update to the new Oracle Home that will now be listed in the dropdown and scroll down to save.</p> <p>Now click on the camera icon to take a snap sync to ensure everything is functioning properly.  This should only take a minute to complete.</p> <p>The <strong>DSource</strong> is now updated in the Delphix Admin console and we can turn our attentions to the <a href="https://docs.delphix.com/display/DOCS30/Delphix+Server+Overview"><strong>Linux target</strong></a> and our <strong>VDBs</strong> that source from this host.  In Part IV we&#8217;ll dig into the other half of the source/target configuration and how I upgraded Delphix environments with a few surprises!</p> <p>&nbsp;</p> <!-- Easy Plugin for AdSense Unfiltered [count: 3 is not less than 3] --></div><br><br><img src="https://i2.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/ico-tag.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> Tags:&nbsp;&nbsp;<a href="http://dbakevlar.com/tag/aws/" rel="tag">AWS</a>, <a href="http://dbakevlar.com/tag/delphix/" rel="tag">Delphix</a>, <a href="http://dbakevlar.com/tag/oracle/" rel="tag">oracle</a>, <a href="http://dbakevlar.com/tag/upgrade/" rel="tag">upgrade</a><br><br><div style="width:100%"><table align="left" width="100%" cellspacing="0" cellpadding="0" bgcolor="#f1f1f1" border="0px;"> <tbody> <tr bgcolor="#ffffff"><td align="center" width="17%" valign="top"> <span class="sb_title">Del.icio.us</span><br> <a href="http://del.icio.us/post?url=http://dbakevlar.com/2017/07/upgrading-an-amazon-ec2-delphix-source-part-iii/&title=Upgrading an Amazon EC2 Delphix Source, Part III"> <img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/delicious.gif?w=600" border="0" align="absmiddle" data-recalc-dims="1"> </a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">Facebook</span><br> <a href="http://www.facebook.com/share.php?u=http://dbakevlar.com/2017/07/upgrading-an-amazon-ec2-delphix-source-part-iii/"><img src="https://i0.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/facebook_icon.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">TweetThis</span><br> <a href="http://twitthis.com/twit?url=http://dbakevlar.com/2017/07/upgrading-an-amazon-ec2-delphix-source-part-iii/&title=Upgrading an Amazon EC2 Delphix Source, Part III"><img src="https://i2.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tweet.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">Digg</span><br> <a href="http://digg.com/submit?phase=2&url=http://dbakevlar.com/2017/07/upgrading-an-amazon-ec2-delphix-source-part-iii/&title=Upgrading an Amazon EC2 Delphix Source, Part III"><img src="https://i0.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/digg.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">StumbleUpon</span><br> <a href="http://www.stumbleupon.com/submit?url=http://dbakevlar.com/2017/07/upgrading-an-amazon-ec2-delphix-source-part-iii/&title=Upgrading an Amazon EC2 Delphix Source, Part III"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/stumble.gif?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td></tr> </tbody></table></div><br><div style="clear:both"></div><div style="background:#EEEEEE; padding:0px 0px 0px 15px; margin:10px 0px 0px 0px;"><div style="padding:5px 0px 5px 0px;"><b>Comments:</b>&nbsp;&nbsp;<a href="http://dbakevlar.com/2017/07/upgrading-an-amazon-ec2-delphix-source-part-iii/#respond">0 (Zero), Be the first to leave a reply!</a></div><br><div style="clear:both"></div><div style="padding:13px 0px 5px 0px;"><span style="border-bottom:1px dashed #003399;padding-bottom:4px;"><strong>You might be interested in this:</strong></span>&nbsp;&nbsp;<br><ul style="margin:0; padding:0; padding-top:10px; padding-bottom:5px;"><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2013/06/kscope-2013/" >KSCOPE 2013!</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2014/04/top-misconceptions-about-dbaas-snapclone/" >Top Misconceptions about DBaaS Snapclone</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2012/03/rmoug-2012-revisited/" >RMOUG 2012 Revisited</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2017/07/odtugs-kscope-2nd-annual-geekathon/" >ODTUG's KSCOPE 2nd Annual Geekathon</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2014/09/how-to-configure-em12c-to-not-use-load-balancers/" >How to Configure EM12c to NOT Use Load Balancers</a></li></ul></div></div><hr style="color:#EBEBEB" /><small>Copyright © <a href="http://dbakevlar.com">DBA Kevlar</a> [<a href="http://dbakevlar.com/2017/07/upgrading-an-amazon-ec2-delphix-source-part-iii/">Upgrading an Amazon EC2 Delphix Source, Part III</a>], All Right Reserved. 2017.</small><br><p>The post <a rel="nofollow" href="http://dbakevlar.com/2017/07/upgrading-an-amazon-ec2-delphix-source-part-iii/">Upgrading an Amazon EC2 Delphix Source, Part III</a> appeared first on <a rel="nofollow" href="http://dbakevlar.com">DBA Kevlar</a>.</p> dbakevlar http://dbakevlar.com/?p=6957 Mon Jul 31 2017 14:40:54 GMT-0400 (EDT) What Employers Want : A Series of Posts http://feedproxy.google.com/~r/TheOracleBaseBlog/~3/chTcRODrMc0/ <p><img class="alignleft wp-image-7330" src="https://oracle-base.com/blog/wp-content/uploads/2017/07/application-1915343_640.jpg" alt="" width="150" height="100" />A couple of years ago I was asked to give a talk about employability, with respect to graduates. I&#8217;m not an expert in that field, so I reached out to a few friends and companies to get some feedback about what they expect from new staff. I get questions about jobs all the time, so I figured I would write a short series of posts on the subject, just so I can refer people to them.</p> <p>The posts in the series are as follows.</p> <ul> <li><a href="https://oracle-base.com/blog/2017/08/01/what-employers-want-qualifications/">Qualifications</a></li> <li><a href="https://oracle-base.com/blog/2017/08/02/what-employers-want-enthusiasm/">Enthusiasm</a></li> <li><a href="https://oracle-base.com/blog/2017/08/03/what-employers-want-self-sufficiency/">Self-Sufficiency</a></li> <li><a href="https://oracle-base.com/blog/2017/08/04/what-employers-want-communication-skills/">Communication Skills</a></li> <li><a href="https://oracle-base.com/blog/2017/08/07/what-employers-want-confidence/">Confidence</a></li> <li><a href="https://oracle-base.com/blog/2017/08/08/what-employers-want-make-yourself-stand-out/">Make Yourself Stand Out</a></li> <li><a href="https://oracle-base.com/blog/2017/08/09/what-employers-want-stop-making-the-same-mistakes/">Stop Making the Same Mistakes</a></li> </ul> <p>After doing the presentation I discussed it with the careers staff present, who confirmed this matched the feedback they were getting from their industrial contacts, so it seems the feedback I got from my contacts was on the money!</p> <p>As I publish each post I will turn these bullet points into links.</p> <p>Hope this helps.</p> <p>Cheers</p> <p>Tim&#8230;</p> <hr style="border-top:black solid 1px" /><a href="https://oracle-base.com/blog/2017/07/31/what-employers-want-a-series-of-posts/">What Employers Want : A Series of Posts</a> was first posted on July 31, 2017 at 10:37 am.<br />©2012 "<a href="http://www.oracle-base.com/blog">The ORACLE-BASE Blog</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.<br /><img src="http://feeds.feedburner.com/~r/TheOracleBaseBlog/~4/chTcRODrMc0" height="1" width="1" alt=""/> Tim... https://oracle-base.com/blog/?p=7306 Mon Jul 31 2017 05:37:27 GMT-0400 (EDT) Presented at CLOUG OTN Day 2017, Chile stop of the 2017 LAD OTN Tour http://www.fahdmirza.com/2017/07/presented-at-cloug-otn-day-2017-chile.html <div dir="ltr" style="text-align: left;" trbidi="on">Amidst lots of Empanadas and Lomo Saltodos, I presented at <a href="http://www.cloug.cl/">CLOUG OTN Day 2017</a>, Chile stop of the 2017 LAD OTN Tour last week and it was great to see a very passionate audience.<br /><br /><a name='more'></a><br /><br /><br />Despite of long flight and opposite time zone difference, Santiago, Chille came out very welcoming and lively. The event was very well organized and was studded with international speakers including fellow Pythianite Bjoern Rost, and various other well known speakers like Markus Michalewicz, Ricardo Gonzalez, Craig Shallahamer and so on.<br /><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-QMvhmSVbQGo/WX5qzoRb39I/AAAAAAAAAfI/YiHn0-6Mhyg5Z9bF1m69yZA4WowieRzBQCLcBGAs/s1600/cloug.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="75" data-original-width="220" src="https://3.bp.blogspot.com/-QMvhmSVbQGo/WX5qzoRb39I/AAAAAAAAAfI/YiHn0-6Mhyg5Z9bF1m69yZA4WowieRzBQCLcBGAs/s1600/cloug.jpg" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-RKD69Q3oRSQ/WX6JkqCbuCI/AAAAAAAAAfs/fPa06Qom7IwIk35BejtxCXi6XfnBsy0TwCLcBGAs/s1600/DF1bnogXoAQpjYs.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1200" height="300" src="https://1.bp.blogspot.com/-RKD69Q3oRSQ/WX6JkqCbuCI/AAAAAAAAAfs/fPa06Qom7IwIk35BejtxCXi6XfnBsy0TwCLcBGAs/s400/DF1bnogXoAQpjYs.jpg" width="400" /></a></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;"><br /></div></div> Fahd Mirza tag:blogger.com,1999:blog-3496259157130184660.post-4740950126748746371 Sun Jul 30 2017 19:25:00 GMT-0400 (EDT) LEAP#327 Diode Ring Mixer http://blog.tardate.com/2017/07/leap327-diode-ring-mixer.html <p>A DIY build of a double-balanced diode ring frequency mixer, inspired by another <a href="https://www.youtube.com/watch?v=junuEwmQVQ8">video from w2aew</a> and the endless treasure-trove that is <a href="https://www.goodreads.com/book/show/2386153.Experimental_Methods_in_RF_Design">Experimental Methods in RF Design</a>. As always, <a href="https://github.com/tardate/LittleArduinoProjects/tree/master/Electronics101/Mixers/RFDiodeRing">all notes, schematics and code are in the Little Electronics &amp; Arduino Projects repo on GitHub</a> <a href="https://github.com/tardate/LittleArduinoProjects/tree/master/Electronics101/Mixers/RFDiodeRing"><img src="http://leap.tardate.com/Electronics101/Mixers/RFDiodeRing/assets/RFDiodeRing_build.jpg" alt="hero_image" /></a></p> http://blog.tardate.com/2017/07/leap327-diode-ring-mixer.html Sun Jul 30 2017 10:32:55 GMT-0400 (EDT) Microservices PoC: A Docker Calculator http://dbaontap.com/2017/07/29/microservices-poc-a-docker-calculator/ <p>This example will explore building a simple container that has one specific  function. I&#8217;ll then extend this concept to a bit to add additional containers in an effort to build a basic calculator that can add, subtract, divide, and multiply. The current rendition will execute from the command line. Given enough time, we can REST ...</p> <p>The post <a rel="nofollow" href="http://dbaontap.com/2017/07/29/microservices-poc-a-docker-calculator/">Microservices PoC: A Docker Calculator</a> appeared first on <a rel="nofollow" href="http://dbaontap.com">dbaonTap</a>.</p> DB http://dbaontap.com/?p=1405 Sat Jul 29 2017 22:42:24 GMT-0400 (EDT) JDev/ADF sample - Oracle JET Busy Context API to Control Asynchronous REST Calls http://andrejusb-samples.blogspot.com/2017/07/jdevadf-sample-oracle-jet-busy-context.html <div dir="ltr" style="text-align: left;" trbidi="on"><ul><li><a href="http://andrejusb.blogspot.lt/2017/07/oracle-jet-busy-context-api-to-control.html" target="_blank">Oracle JET Busy Context API to Control Asynchronous REST Calls</a>. I have received feedback from users working with JET UI - sometimes it is not obvious that action button was pressed, users tend to press same button again very fast, which leads to parallel REST calls executing at the same time. In JET - REST call is executed asynchronously, this makes user to believe action was done instantly when button was pressed. However, REST call still may run in the background - while user will be trying to call same service again. While in most of the cases such behaviour is fine, still there are use cases when we want to block action button, until REST response is not received (while response is executed, button will be disabled - this will give visual feedback to the user about action still executing). JET provides <a href="http://www.oracle.com/webfolder/technetwork/jet/jsdocs/oj.BusyContext.html" target="_blank">Busy Context</a> API to handle asynchronous REST calls in synchronous way.</li></ul><ol>Download - <a href="https://github.com/abaranovskis-redsamurai/jetcrud" target="_blank">JETCRUD</a></ol></div> Andrejus Baranovskis tag:blogger.com,1999:blog-4301764760924839143.post-1067162400416963823 Sat Jul 29 2017 12:06:00 GMT-0400 (EDT) VirtualBox 5.1.26 http://feedproxy.google.com/~r/TheOracleBaseBlog/~3/wQEpI7b28fY/ <p><a href="https://www.virtualbox.org/"><img class="alignleft size-full wp-image-4959" src="https://oracle-base.com/blog/wp-content/uploads/2015/05/virtualbox.jpg" alt="" width="129" height="145" /></a><a href="https://www.virtualbox.org/">VirtualBox</a> 5.1.26 has been released.</p> <p>The <a href="https://www.virtualbox.org/wiki/Downloads">downloads</a> and <a href="https://www.virtualbox.org/wiki/Changelog#v26">changelog</a> are in the usual places.</p> <p>I’ve done an installation on my work PC (Windows 7) and it worked fine. I probably won’t get to do it on macOS Sierra and Oracle Linux hosts until the weekend. <strong>Update</strong>: Worked fine on macOS Sierra and Oracle Linux 7 hosts too.</p> <p>I&#8217;ve had some odd behaviour from a couple of VMs recently and I can&#8217;t tell if it&#8217;s a problem with the OS, VirtualBox, me or the combination of the three&#8230; I was secretly hoping this release would magically fix the issues, but it didn&#8217;t, so I guess I&#8217;m going to have to spend some time bottoming them out&#8230;</p> <p>Cheers</p> <p>Tim…</p> <hr style="border-top:black solid 1px" /><a href="https://oracle-base.com/blog/2017/07/28/virtualbox-5-1-26/">VirtualBox 5.1.26</a> was first posted on July 28, 2017 at 2:14 pm.<br />©2012 "<a href="http://www.oracle-base.com/blog">The ORACLE-BASE Blog</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.<br /><img src="http://feeds.feedburner.com/~r/TheOracleBaseBlog/~4/wQEpI7b28fY" height="1" width="1" alt=""/> Tim... https://oracle-base.com/blog/?p=7421 Fri Jul 28 2017 09:14:30 GMT-0400 (EDT) Check Composite State of Oracle SOA Suite by Command Line http://dirknachbar.blogspot.com/2017/07/check-composite-state-of-oracle-soa.html I was currently fighting a bit with the monitoring of Oracle SOA Suite 12c Composites.<br /><br />The goal was to check the state of deployed Composites on an Oracle SOA Suite 12c with following requirements/dependencies:<br /><br /><ul><li>No Oracle Cloud Control</li><li>Capture only Active Composites and not Retired Composites</li></ul>After some discussions with colleagues and a lot of Google and serveral tests with Python Scripts in wlst, I came to following solution:<br /><br /><ul><li>one main Pythin Script, called check_composite_state.py which is checking the State of a non retired given Composite Name for a given Partition|Folder and a given Managed Server</li><li>one property file called domain.properties which will be used by the Python Script in order to build the required connect string to the Admin Server of the SOA Suite</li><li>one wrapper Shell Script, which takes the required 3 Arguments (Name of Managed Server, Composite Name and Partition|Folder Name)</li></ul><br />Property File domain.properties<br /><pre class="brush:bash"># Replace the below given values with your settings<br />admin.url=wlssoa1:7001<br />admin.userName=weblogic<br />admin.password=Oracle12c<br /></pre><br />Python Script check_composite_state.py<br /><pre class="brush:bash"># ============================================================<br />#<br /># Script: check_composite_state.py<br />#<br /># Author: Dirk Nachbar, http://dirknachbar.blogpost.com<br />#<br /># Purpose: Checks the state of a given Composite<br /># for Oracle SOA Suite 12c<br />#<br /># ============================================================<br /><br />import sys;<br />from java.util import Date<br />from java.text import SimpleDateFormat<br />from java.io import File<br />from java.io import FileOutputStream<br />from java.io import FileInputStream<br /><br /># Load the WLS Connection Credential and establish the connection<br />propInputStream = FileInputStream("domain.properties")<br />configProps = Properties()<br />configProps.load(propInputStream)<br />adminURL=configProps.get("admin.url")<br />adminUserName=configProps.get("admin.userName")<br />adminPassword=configProps.get("admin.password")<br />managedServer=sys.argv[1]<br />compositeName=sys.argv[2]<br />partitionName=sys.argv[3]<br /><br /># Initialization of Logfile<br />f = File('logs/' + compositeName + '.log')<br />fos = FileOutputStream(f)<br />theInterpreter.setOut(fos)<br /><br /># Perform the Connect to the AdminServer of the SOA Suite<br />connect(adminUserName,adminPassword,adminURL)<br /><br />domainRuntime()<br /><br />for n in mbs.queryNames(ObjectName('oracle.soa.config:Location=' + managedServer + ',partition=' + partitionName + ',j2eeType=SCAComposite,name="' + compositeName + '",*'), None):<br /> RetiredFlag = mbs.getAttribute(n,'Mode')<br /> if RetiredFlag != 'retired':<br /> print 'Name: ' + mbs.getAttribute(n, 'Name')<br /> print 'Mode: ' + mbs.getAttribute(n,'Mode')<br /> print 'State: ' + mbs.getAttribute(n,'State')<br /><br /></pre><br />Wrapper Shell Script check_composite_state.sh<br />In line 13 of the Script, align the Variable OracleHome to your Oracle Home Location<br />In line 66 of the Script, align the directory location were to find the check_composite_state.py Python Script<br /><pre class="brush:bash">#!/bin/bash<br /># ============================================================<br />#<br /># Script: check_composite_state.sh<br />#<br /># Author: Dirk Nachbar, http://dirknachbar.blogspot.com<br />#<br /># Purpose: Wrapper Script to check the state of a given Composite<br /># for Oracle SOA Suite 12c<br />#<br /># ============================================================<br /><br />OracleHome=/data/oracle/product/fmw-soa-12.2.1.2.0<br /><br />#---------------------------------------------------------------------<br />Usage()<br />#<br /># PURPOSE: Displays the Usage of the script<br />#---------------------------------------------------------------------<br />{<br />cat &lt;&lt; EOF<br />Usage: check_composite_state.sh -s &lt;ManagedServer&gt; -c &lt;CompositeName&gt; -p &lt;Partition|Folder&gt;<br /> Monitoring script for SOA Suite Composite<br /><br />Parameters:<br /> -s: Name of the Managed SOA Server<br /> -c: Name of Composite to be checked<br /> -p: Name of Parition | Folder<br /><br />e.g. check_composite_state.sh -s soa_server1 -c PayPal -p default<br /><br />EOF<br />exit 1<br />}<br /><br />#---------------------------------------------------------------------<br />CheckParams()<br />#<br /># PURPOSE: Checks the input Parmeter<br />#---------------------------------------------------------------------<br />{<br /> if [ "${ManagedServer}" = "" ] ; then<br /> echo "ERR: Missing parameter(s), the flags -s must be used."<br /> Usage<br /> fi<br /><br /> if [ "${CompositeName}" = "" ] ; then<br /> echo "ERR: Missing parameter(s), the flags -c must be used."<br /> Usage<br /> fi<br /><br /> if [ "${Partition}" = "" ] ; then<br /> echo "ERR: Missing parameter(s), the flags -p must be used."<br /> Usage<br /> fi<br /><br />}<br /><br />#---------------------------------------------------------------------<br />CallCheckCompositeState()<br />#<br /># PURPOSE: Calls the check_composite_state.py Script<br />#---------------------------------------------------------------------<br />{<br /><br />${OracleHome}/oracle_common/common/bin/wlst.sh /home/oracle/check_composite_state.py ${ManagedServer} ${CompositeName} ${Partition}<br /><br />}<br /><br />#---------------------------------------------------------------------<br /># MAIN<br />#---------------------------------------------------------------------<br /><br />ManagedServer=''<br />CompositeName=''<br />Partition=''<br /><br />while getopts s:c:p:h: CurOpt; do<br /> case ${CurOpt} in<br /> s) ManagedServer="${OPTARG}" ;;<br /> c) CompositeName="${OPTARG}" ;;<br /> p) Partition="${OPTARG}" ;;<br /> h) Usage exit 1 ;;<br /> ?) Usage exit 1 ;;<br /> esac<br />done<br />shift $((${OPTIND}-1))<br /><br />if [ $# -ne 0 ]; then<br /> Usage<br />fi<br /><br /># Check Input Parameters<br />CheckParams<br /><br /># Start the Check State of Composite<br />CallCheckCompositeState<br /><br /></pre>Create the 3 above provided files in one location, align the said Variables and/or directory location and create a subdirectory called "logs" in the directory. Than call the Wrapper Shell Script with following options:<br /><pre class="brush:bash">#<br /># ./check_composite_state.sh -s &lt;Name of Managed Server&gt; -c &lt;Composite Name&gt; -p &lt;Partition|Folder&gt;<br /># for example:<br />./check_composite_state.sh -s soa_server1 -c PayPal -p default<br /></pre><br /><br />Under the directory logs you will find an outfile with naming convention CompositeName.log with the Status of your Composite<br /><pre class="brush:bash"><br />cd logs<br />cat PayPal.log<br /><br />Connecting to t3://wlssoa1:7001 with userid weblogic ...<br />Successfully connected to Admin Server "DEVAdminServer" that belongs to domain "dev_domain".<br /><br />Warning: An insecure protocol was used to connect to the server.<br />To ensure on-the-wire security, the SSL port or Admin port should be used instead.<br /><br />Location changed to domainRuntime tree. This is a read-only tree<br />with DomainMBean as the root MBean.<br />For more help, use help('domainRuntime')<br /><br />Name: PayPal [1.0]<br />Mode: active<br />State: on<br /><br /></pre><br /><br />Happy Composite State Checking ... :-) <br /><br /> Dirk Nachbar tag:blogger.com,1999:blog-4344684978957885806.post-7430015292048754310 Thu Jul 27 2017 10:44:00 GMT-0400 (EDT) Accessing Pivotal Cloud Foundry droplet file system when "cf ssh" isn't enabled http://feedproxy.google.com/~r/blogspot/PEqWE/~3/CP_unoAx0zQ/accessing-pivotal-cloud-foundry-droplet.html In order to view your application layout you can simply use "<b>cf ssh</b>" to log into the container and then view the files created as part of the droplet. The problem is "<b>cf ssh</b>" isn't always enabled bye the Ops team so what is your alternative in cloud foundry?<br /><br />You can use "<b>cf curl</b>" to invoke an endpoint using the application GUID as shown in the steps below.<br /><br /><b>** cf ssh demo **</b><br /><br /><span style="color: #3d85c6;">pasapicella@pas-macbook:~/temp/droplets$ cf ssh pas-swagger-demo</span><br /><span style="color: #3d85c6;">vcap@ef9e4e93-0df9-47a7-5351-dccf:~$ ls -lartF</span><br /><span style="color: #3d85c6;">total 16</span><br /><span style="color: #3d85c6;">-rw-r--r-- 1 vcap vcap &nbsp;675 Apr &nbsp;9 &nbsp;2014 .profile</span><br /><span style="color: #3d85c6;">-rw-r--r-- 1 vcap vcap 3637 Apr &nbsp;9 &nbsp;2014 .bashrc</span><br /><span style="color: #3d85c6;">-rw-r--r-- 1 vcap vcap &nbsp;220 Apr &nbsp;9 &nbsp;2014 .bash_logout</span><br /><span style="color: #3d85c6;">drwxr-xr-x 2 vcap vcap &nbsp; &nbsp;6 Jun 14 03:32 deps/</span><br /><span style="color: #3d85c6;">drwxr-xr-x 1 vcap root &nbsp; 72 Jun 14 03:32 app/</span><br /><span style="color: #3d85c6;">-rw-r--r-- 1 vcap vcap 1087 Jun 14 03:32 staging_info.yml</span><br /><span style="color: #3d85c6;">drwxr-xr-x 2 vcap vcap &nbsp; &nbsp;6 Jun 14 03:32 logs/</span><br /><span style="color: #3d85c6;">drwx------ 1 vcap vcap &nbsp; 76 Jun 14 03:32 ./</span><br /><span style="color: #3d85c6;">drwxr-xr-x 1 root root &nbsp; 18 Jul 26 23:45 ../</span><br /><span style="color: #3d85c6;">drwxr-xr-x 4 vcap vcap &nbsp; 92 Jul 26 23:48 tmp/</span><br /><span style="color: #3d85c6;">vcap@ef9e4e93-0df9-47a7-5351-dccf:~$</span><br /><br /><b>** Steps **</b><br /><div><br /></div><div><div>1. Download droplet as follows</div><div><br /></div><div>Format:</div><div><br /></div><div>&nbsp; &nbsp;<span style="color: #e69138;">cf curl /v2/apps/`cf app {appname} --guid`/droplet/download &gt; droplet.tar.gz</span></div><div><br /></div><div>Example:</div><div><br /></div><div><span style="color: #3d85c6;">pasapicella@pas-macbook:~/temp/droplets$ cf curl /v2/apps/`cf app pas-swagger-demo --guid`/droplet/download &gt; droplet.tar.gz</span></div><div><br /></div><div>To determine the app name you can either use Applications manager UI or use "<b>cf apps</b>" to get the app name</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-cPlu7hCyRbA/WXlzGJO--JI/AAAAAAAAA-E/MSTCILMT93suOs0cbK8NSeGIapm2AzXXQCLcBGAs/s1600/Screen%2BShot%2B2017-07-27%2Bat%2B2.57.53%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="306" data-original-width="1564" height="62" src="https://1.bp.blogspot.com/-cPlu7hCyRbA/WXlzGJO--JI/AAAAAAAAA-E/MSTCILMT93suOs0cbK8NSeGIapm2AzXXQCLcBGAs/s320/Screen%2BShot%2B2017-07-27%2Bat%2B2.57.53%2BPM.png" width="320" /></a></div><div><br /></div><div>2. This will take some time due to the size of the droplet but when done verify you have this on the file system</div><div><br /></div><div><span style="color: #3d85c6;">pasapicella@pas-macbook:~/temp/droplets$ ls -la</span></div><div><span style="color: #3d85c6;">total 150736</span></div><div><span style="color: #3d85c6;">drwxr-xr-x &nbsp; 3 pasapicella &nbsp;staff &nbsp; &nbsp; &nbsp; 102 Jul 27 14:20 .</span></div><div><span style="color: #3d85c6;">drwxr-xr-x &nbsp;23 pasapicella &nbsp;staff &nbsp; &nbsp; &nbsp; 782 Jul 27 14:19 ..</span></div><div><span style="color: #3d85c6;">-rw-r--r-- &nbsp; 1 pasapicella &nbsp;staff &nbsp;77173173 Jul 27 14:23 droplet.tar.gz</span></div><div><br /></div><div>3. Gunzip followed by tar -xvf and you will then have a file system replicator of what your application droplet looks like in CF</div><div><br /></div><div><span style="color: #3d85c6;">pasapicella@pas-macbook:~/temp/droplets$ d</span></div><div><span style="color: #3d85c6;">total 313408</span></div><div><span style="color: #3d85c6;">drwxr-xr-x &nbsp; 2 pasapicella &nbsp;staff &nbsp; &nbsp; &nbsp; &nbsp; 68 Jun 14 13:32 deps/</span></div><div><span style="color: #3d85c6;">drwxr-xr-x &nbsp; 6 pasapicella &nbsp;staff &nbsp; &nbsp; &nbsp; &nbsp;204 Jun 14 13:32 app/</span></div><div><span style="color: #3d85c6;">drwxr-xr-x &nbsp; 2 pasapicella &nbsp;staff &nbsp; &nbsp; &nbsp; &nbsp; 68 Jun 14 13:32 tmp/</span></div><div><span style="color: #3d85c6;">-rw-r--r-- &nbsp; 1 pasapicella &nbsp;staff &nbsp; &nbsp; &nbsp; 1087 Jun 14 13:32 staging_info.yml</span></div><div><span style="color: #3d85c6;">drwxr-xr-x &nbsp; 2 pasapicella &nbsp;staff &nbsp; &nbsp; &nbsp; &nbsp; 68 Jun 14 13:32 logs/</span></div><div><span style="color: #3d85c6;">drwxr-xr-x &nbsp;23 pasapicella &nbsp;staff &nbsp; &nbsp; &nbsp; &nbsp;782 Jul 27 14:19 ../</span></div><div><span style="color: #3d85c6;">-rw-r--r-- &nbsp; 1 pasapicella &nbsp;staff &nbsp;160460800 Jul 27 14:23 droplet.tar</span></div><div><span style="color: #3d85c6;">drwxr-xr-x &nbsp; 8 pasapicella &nbsp;staff &nbsp; &nbsp; &nbsp; &nbsp;272 Jul 27 14:25 ./</span></div></div><div><br /></div><div><br /></div><div>You really only want to do this to see how your application was staged on the file system as the buildpack may have changed some files or added files based on what you deployed. This is not how you would debug an application but rather view what the file system looks like for your application itself and what content exists in the files should the buildpack have changed file content for example.</div><div><br /></div><div class="blogger-post-footer">http://feeds.feedburner.com/TheBlasFromPas</div><img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/CP_unoAx0zQ" height="1" width="1" alt=""/> Pas Apicella tag:blogger.com,1999:blog-6527688743456205256.post-6139208604496379699 Thu Jul 27 2017 01:03:00 GMT-0400 (EDT) Upgrading an Amazon EC2 Delphix Source, Part II http://dbakevlar.com/2017/07/upgrading-amazon-ec2-delphix-source-part-ii/ <div class="pf-content"><p>I&#8217;m finally getting back to upgrading the Linux Source for a POC I&#8217;m doing with some folks and picking up from where we left off in <a href="http://dbakevlar.com/2017/07/upgrading-amazon-ec2-delphix-source-part/">Part I</a>&#8230;</p> <p><a href="http://dbakevlar.com/2017/07/upgrading-amazon-ec2-delphix-source-part-ii/thankyou/" rel="attachment wp-att-6953"><img class="alignnone wp-image-6953" src="https://i2.wp.com/dbakevlar.com/wp-content/uploads/2017/07/thankyou.gif?resize=329%2C185" alt="" data-recalc-dims="1" /></a></p> <h3>Address Display Issue</h3> <p>Now that we have our VNC Viewer working on our Amazon host, the first thing we&#8217;ll try is to run the Oracle installer, (unzipped location &#8211;&gt; database &#8211;&gt; runInstaller) but it&#8217;s going to fail because we&#8217;re missing the xdpinfo file.  To verify this, you&#8217;ll need to open up a terminal from <strong>Application &#8211;&gt; System Tools &#8211;&gt; Terminal</strong>:</p> <pre>$ ls -l /usr/bin/xdpyinfo ls: /usr/bin/xdpyinfo: No such file or directory</pre> <p>We&#8217;ll need to install this with yum:</p> <pre>$ sudo yum -y install xorg-x11-utils</pre> <p>Once we&#8217;ve completed this, let&#8217;s verify our display:</p> <pre>$ echo $DISPLAY</pre> <p>:1.0 &lt;&#8211; (0 is local, first number is the display, just as ipaddress:display for your VNC Viewer connection.)</p> <p>If it&#8217;s correct, you can test it by executing xclock:</p> <pre>$ xclock</pre> <p>The clock should appear on the screen if the display is set correctly.</p> <h3>Install Oracle 12c</h3> <p>Run the installer:</p> <pre>$ ./runInstaller</pre> <p>The installer will come up for Oracle 12c and you can choose to enter in your information, but I chose to stay uninformed&#8230; <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" />  I chose to install AND upgrade the database to DB12c from 11g.</p> <p>The warnings for swap and the few libraries I also chose to ignore by clicking ignore all and proceeded with the installation.</p> <h3>Root.sh and the Trace Analyzer</h3> <p>Once the installation of the new Oracle Home is complete, choose to run the root.sh script when prompted:</p> <pre>$ sudo /u01/app/oracle/product/12.1/db_1/root.sh</pre> <p>Overwrite all files when prompted by the script run and it&#8217;s up to you, but I chose to install the Oracle Trace File Analyzer so I can check it out at a later date.  You&#8217;ll then be prompted to choose the database to upgrade.  We&#8217;re going to upgrade our source database, ORCL in this example.</p> <p><a href="http://dbakevlar.com/2017/07/upgrading-amazon-ec2-delphix-source-part-ii/12c_install/" rel="attachment wp-att-6947"><img class="alignnone size-large wp-image-6947" src="https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/12c_install.png?resize=600%2C360" alt="" srcset="https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/12c_install.png?resize=1024%2C614 1024w, https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/12c_install.png?resize=300%2C180 300w, https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/12c_install.png?resize=768%2C460 768w, https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/12c_install.png?resize=200%2C120 200w, https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/12c_install.png?w=1588 1588w, https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/12c_install.png?w=1200 1200w" sizes="(max-width: 600px) 100vw, 600px" data-recalc-dims="1" /></a></p> <h3>Upgrade Our Oracle DSource(Database)</h3> <p>Choose to proceed forward with the upgrade on the database, but know that you&#8217;ll require more space for the archive logs that are generated during the upgrade.  The check will tell you how much to add, but I&#8217;d add another 1Gb to ensure you are prepared with the other steps you have to run as we go through the preparation steps.</p> <p><a href="http://dbakevlar.com/2017/07/upgrading-amazon-ec2-delphix-source-part-ii/12c_install3/" rel="attachment wp-att-6948"><img class="alignnone size-large wp-image-6948" src="https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/12c_install3.png?resize=600%2C444" alt="" srcset="https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/12c_install3.png?resize=1024%2C757 1024w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/12c_install3.png?resize=300%2C222 300w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/12c_install3.png?resize=768%2C568 768w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/12c_install3.png?w=1200 1200w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/12c_install3.png?w=1800 1800w" sizes="(max-width: 600px) 100vw, 600px" data-recalc-dims="1" /></a></p> <p>Log into SQL Plus as SYSDBA to perform this step:</p> <pre>ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=8100M;</pre> <p>Go through any warnings, but steps like stats collection and grants on triggers will have to be performed post the upgrade.</p> <p>Drop the OLAP catalog:</p> <pre>$ sqlplus / as sysdba @$ORACLE_HOME/olap/admin/catnoamd.sql exit</pre> <p>Remove the OEM catalog for Enterprise Manager, first shutting down the console from the terminal:</p> <pre>$ emctl stop dbconsole</pre> <p>Copy the emremove.sql from the <strong>12c Oracle Home/rdbms/admin</strong> and place it in the same location for <strong>11g home</strong>.  Log into SQL Plus as SYSDBA:</p> <pre>SET ECHO ON; SET SERVEROUTPUT ON; @$ORACLE_HOME/rdbms/admin/emremove.sql</pre> <p>Empty the recyclebin post these steps:</p> <pre>purge recyclebin;</pre> <p>The assumption is that you have a backup prepared or you can use flashback with your resources allocated and proceed forward with upgrade.</p> <p>Choose to upgrade the 11g listener and choose to install EM Express if you&#8217;d like to have that for monitoring.  Make sure to keep the default checks for the following window to update everything we need and collect stats before the upgrade runs to ensure it proceeds efficiently through all objects required.</p> <p><a href="http://dbakevlar.com/2017/07/upgrading-amazon-ec2-delphix-source-part-ii/db12c_upgrade4/" rel="attachment wp-att-6949"><img class="alignnone size-large wp-image-6949" src="https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/db12c_upgrade4.png?resize=600%2C505" alt="" srcset="https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/db12c_upgrade4.png?resize=1024%2C862 1024w, https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/db12c_upgrade4.png?resize=300%2C253 300w, https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/db12c_upgrade4.png?resize=768%2C646 768w, https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/db12c_upgrade4.png?w=1200 1200w, https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/db12c_upgrade4.png?w=1800 1800w" sizes="(max-width: 600px) 100vw, 600px" data-recalc-dims="1" /></a></p> <p>Choose to proceed with the upgrade and if you&#8217;ve followed these instructions, you should find a successful installation of DB12c and upgrade of the database.  Keep in mind, <strong>we&#8217;re not going to go multi-tenant in this upgrade example</strong>, so if you were looking for those steps, my POC I&#8217;m building isn&#8217;t going to take that on in this set of blog posts.</p> <h3>Post Upgrade Steps:</h3> <p>Update your environment variables, including copying the 11g.env to a new profile called 12c.env and updating the Oracle Home.  Now set your environment and log into SQL Plus as SYSDBA to the upgraded database.</p> <p>Update all the necessary dictionary and fixed stats:</p> <pre>EXECUTE DBMS_STATS.GATHER_DICTIONARY_STATS; EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;</pre> <p>Now, for our next post, we&#8217;ll need to set up the same installations on our <a href="http://dbakevlar.com/2017/07/upgrading-amazon-ec2-delphix-source-part/">Amazon host and VNC Viewer configuration</a> we did for the Source and then install Oracle DB12c on our target server as we did in this post.  Then we&#8217;ll discuss how to get all our Delphix VDBs, (virtual databases) upgraded to be the same as our source in no time!</p> <p>&nbsp;</p> <!-- Easy Plugin for AdSense Unfiltered [count: 3 is not less than 3] --></div><br><br><img src="https://i2.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/ico-tag.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> Tags:&nbsp;&nbsp;<a href="http://dbakevlar.com/tag/amazon/" rel="tag">amazon</a>, <a href="http://dbakevlar.com/tag/db12c/" rel="tag">DB12c</a>, <a href="http://dbakevlar.com/tag/delphix/" rel="tag">Delphix</a>, <a href="http://dbakevlar.com/tag/oracle/" rel="tag">oracle</a><br><br><div style="width:100%"><table align="left" width="100%" cellspacing="0" cellpadding="0" bgcolor="#f1f1f1" border="0px;"> <tbody> <tr bgcolor="#ffffff"><td align="center" width="17%" valign="top"> <span class="sb_title">Del.icio.us</span><br> <a href="http://del.icio.us/post?url=http://dbakevlar.com/2017/07/upgrading-amazon-ec2-delphix-source-part-ii/&title=Upgrading an Amazon EC2 Delphix Source, Part II"> <img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/delicious.gif?w=600" border="0" align="absmiddle" data-recalc-dims="1"> </a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">Facebook</span><br> <a href="http://www.facebook.com/share.php?u=http://dbakevlar.com/2017/07/upgrading-amazon-ec2-delphix-source-part-ii/"><img src="https://i0.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/facebook_icon.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">TweetThis</span><br> <a href="http://twitthis.com/twit?url=http://dbakevlar.com/2017/07/upgrading-amazon-ec2-delphix-source-part-ii/&title=Upgrading an Amazon EC2 Delphix Source, Part II"><img src="https://i2.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tweet.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">Digg</span><br> <a href="http://digg.com/submit?phase=2&url=http://dbakevlar.com/2017/07/upgrading-amazon-ec2-delphix-source-part-ii/&title=Upgrading an Amazon EC2 Delphix Source, Part II"><img src="https://i0.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/digg.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">StumbleUpon</span><br> <a href="http://www.stumbleupon.com/submit?url=http://dbakevlar.com/2017/07/upgrading-amazon-ec2-delphix-source-part-ii/&title=Upgrading an Amazon EC2 Delphix Source, Part II"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/stumble.gif?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td></tr> </tbody></table></div><br><div style="clear:both"></div><div style="background:#EEEEEE; padding:0px 0px 0px 15px; margin:10px 0px 0px 0px;"><div style="padding:5px 0px 5px 0px;"><b>Comments:</b>&nbsp;&nbsp;<a href="http://dbakevlar.com/2017/07/upgrading-amazon-ec2-delphix-source-part-ii/#respond">0 (Zero), Be the first to leave a reply!</a></div><br><div style="clear:both"></div><div style="padding:13px 0px 5px 0px;"><span style="border-bottom:1px dashed #003399;padding-bottom:4px;"><strong>You might be interested in this:</strong></span>&nbsp;&nbsp;<br><ul style="margin:0; padding:0; padding-top:10px; padding-bottom:5px;"><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2012/02/11g-sherlock-holming-it-with-statistics-historgrams-and-bind-peeking/" >11g, Sherlock Holming it with Statistics, Histograms and Bind Peeking</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2013/08/enqueue-pk-fk-or-bitmap-index-problem/" >Enqueue – PK, FK or Bitmap Index problem?</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2017/01/delphix-trial-aws-get-hot/" >The Delphix Trial on AWS- Get It While Its HOT!</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2011/02/pulling-the-trigger/" >Pulling the Trigger</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2016/02/em13c-upgrade-tips-part-ii/" >EM13c Upgrade Tips- Part II</a></li></ul></div></div><hr style="color:#EBEBEB" /><small>Copyright © <a href="http://dbakevlar.com">DBA Kevlar</a> [<a href="http://dbakevlar.com/2017/07/upgrading-amazon-ec2-delphix-source-part-ii/">Upgrading an Amazon EC2 Delphix Source, Part II</a>], All Right Reserved. 2017.</small><br><p>The post <a rel="nofollow" href="http://dbakevlar.com/2017/07/upgrading-amazon-ec2-delphix-source-part-ii/">Upgrading an Amazon EC2 Delphix Source, Part II</a> appeared first on <a rel="nofollow" href="http://dbakevlar.com">DBA Kevlar</a>.</p> dbakevlar http://dbakevlar.com/?p=6939 Wed Jul 26 2017 23:44:12 GMT-0400 (EDT) Enforcing Naming Standards for Your Data Models http://www.thatjeffsmith.com/archive/2017/07/enforcing-naming-standards-for-your-data-models/ <p>Customer asks:</p> <p><em>We tried also to apply some naming conventions but I think we didn’t understand something&#8230;.<br /> Having a logical model with a table having the column X, and a glossary having the standard name as Y. Can I apply some checks based on the glossary directly in the logical or relational model?</em></p> <p>Yes, in fact you can.</p> <p>Basically how it will work is:</p> <ol> <li>You will define a glossary, having words you pprove for your object names</li> <li>You will add one or more glossaries to your design properties</li> <li>You will run the appropriate Design Rules when you want to do a quality check</li> </ol> <h3>Let&#8217;s start with creating our Glossary.</h3> <p>Tools > Glossary Editor.</p> <p>It&#8217;s going to ask for a .glossary file. You don&#8217;t have one. So browse to a directory and type in a file name you want to use &#8211; the data modeler will create the file for you and open this dialog:</p> <div id="attachment_6266" style="width: 1034px" class="wp-caption aligncenter"><a href="http://www.thatjeffsmith.com/wp-content/uploads/2017/07/glossary1.png"><img src="http://www.thatjeffsmith.com/wp-content/uploads/2017/07/glossary1.png" alt="" width="1024" height="654" class="size-full wp-image-6266" /></a><p class="wp-caption-text">The &#8216;prime&#8217;, &#8216;modifier&#8217;, etc labels are well defined in the Help topic.</p></div> <p>So put in your approved words, hit Save, and then Close.</p> <h3>Now We&#8217;ll Tell Our Design Where to Find the Glossary</h3> <p>Right-click on your design in the tree, and open the properties.</p> <div id="attachment_6267" style="width: 774px" class="wp-caption aligncenter"><a href="http://www.thatjeffsmith.com/wp-content/uploads/2017/07/glossary2.png"><img src="http://www.thatjeffsmith.com/wp-content/uploads/2017/07/glossary2.png" alt="" width="764" height="550" class="size-full wp-image-6267" /></a><p class="wp-caption-text">The Separator settings are important &#8211; they will determine if your names are going to be treated as one or more words.</p></div> <h3>Now What?</h3> <p>The Modeler isn&#8217;t mean. It&#8217;s not going to laugh at your design. So when I create a new entity or table and try to save or close my design, it&#8217;s not going to give me an error if the names aren&#8217;t adhering to the &#8216;rules.&#8217;</p> <p>No, instead you can ask for a quality check.</p> <p>Back to the Tools menu, but this time select &#8216;Design Rules &#038; Transformations&#8217; &#8211; &#8216;Design Rules.&#8217; </p> <p>Open the logical and/or relational set, and select the naming convention items.</p> <p>Hit the &#8216;Apply Selected&#8217; rules button, and get your results.</p> <div id="attachment_6268" style="width: 1016px" class="wp-caption aligncenter"><a href="http://www.thatjeffsmith.com/wp-content/uploads/2017/07/glossary3.png"><img src="http://www.thatjeffsmith.com/wp-content/uploads/2017/07/glossary3.png" alt="" width="1006" height="677" class="size-full wp-image-6268" /></a><p class="wp-caption-text">Ruh-roh!</p></div> <p>Since I had my naming standards settings for this design set to treat an underscore (-) as a &#8216;Separator&#8217;, it&#8217;s treating &#8216;LOTS_OF_WORDS&#8217; as three separate words to check in the glossary.</p> <p>So, fix my names, and run the rules until I pass everything. Or ignore the rules and wait for a design committee to frown at me.</p> <h3>PS &#8211; Thanks <a href="https://twitter.com/helifromfinland">Heli</a>!</h3> <p>I hadn&#8217;t used this feature in awhile, and needed to brush up on a few things. Thankfully I had <a href="https://www.amazon.com/Oracle-Developer-Modeler-Database-Mastery/dp/0071850090" target="_blank">Heli&#8217;s book</a> handy <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </p> <div id="attachment_6269" style="width: 850px" class="wp-caption aligncenter"><a href="http://www.thatjeffsmith.com/wp-content/uploads/2017/07/heli-book.jpg"><img src="http://www.thatjeffsmith.com/wp-content/uploads/2017/07/heli-book-1024x1024.jpg" alt="" width="840" height="840" class="size-large wp-image-6269" /></a><p class="wp-caption-text">I should have remembered this better, I helped edit the book <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p></div> <p>Totally worth the $30 to pick this up.</p> <!-- Easy AdSense Unfiltered [count: 3 is not less than 3] --> thatjeffsmith http://www.thatjeffsmith.com/?p=6265 Wed Jul 26 2017 15:24:51 GMT-0400 (EDT) Oracle Mobile Cloud Service (MCS) and Integration Cloud Service (ICS): How secure is your TLS connection? https://technology.amis.nl/2017/07/26/oracle-mobile-cloud-service-mcs-integration-cloud-service-ics-cipher-how-secure-tls-connection/ <p>In <a href="https://technology.amis.nl/2017/07/04/ssltls-choose-cipher-suite/">a previous blog</a> I have explained which what cipher suites are, the role they play in establishing SSL connections and have provided some suggestions on how you can determine which cipher suite is a strong cipher suite. In this blog post I&#8217;ll apply this knowledge to look at incoming connections to Oracle Mobile Cloud Service and Integration Cloud Service. Outgoing connections are a different story altogether. These two cloud services do not allow you control of cipher suites to the extend as for example <a href="https://cloud.oracle.com/java">Oracle Java Cloud Service</a> and you are thus forced to use the cipher suites Oracle has chosen for you.</p> <p>Why should you be interested in TLS? Well, &#8216;normal&#8217; application authentication uses tokens (like SAML, JWT, OAuth). Once an attacker obtains such a token (and no additional client authentication is in place), it is more or less free game for the attacker. An important mechanism which prevents the attacker from obtaining the token is <a href="https://en.wikipedia.org/wiki/Transport_Layer_Security">TLS</a> (Transport Layer Security). The strength of the provided security depends on the choice of cipher suite. The cipher suite is chosen by negotiation between client and server. The client provides options and the server chooses the one which has its preference.</p> <p>Disclaimer: my knowledge is not at the level that I can personally exploit the liabilities in different cipher suites. I&#8217;ve used several posts I found online as references. I have used the <a href="https://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet">OWASP TLS Cheat Sheet</a> extensively which provides many references for further investigation should you wish.</p> <p><span id="more-45514"></span></p> <h1>Method</h1> <h2>Cipher suites</h2> <p>The supported cipher suites for the Oracle Cloud Services appear to be (on first glance) host specific and not URL specific. The APIs and exposed services use the same cipher suites. Also the specific configuration of the service is irrelevant we are testing the connection, not the message. Using tools described <a href="http://javaoraclesoa.blogspot.nl/2017/07/ssltls-how-to-choose-your-cipher-suite.html">here</a> (for public URL&#8217;s <a href="https://www.ssllabs.com/ssltest/">https://www.ssllabs.com/ssltest/</a> is easiest) you can check if the SSL connection is secure. You can also check yourself with a command like: nmap &#8211;script ssl-enum-ciphers -p 443 hostname. Also there are various scripts available. See for some suggestions <a href="http://javaoraclesoa.blogspot.nl/2017/07/ssltls-how-to-choose-your-cipher-suite.html">here</a>.</p> <p>I&#8217;ve looked at two Oracle Cloud services which are available to me at the moment:</p> <ul> <li><a href="https://cloud.oracle.com/integration">Integration Cloud Service</a></li> <li><a href="https://cloud.oracle.com/mobile">Mobile Cloud Service</a></li> </ul> <h1>Results</h1> <p>It was interesting to see the supported cipher suites for Mobile Cloud Service and Integration Cloud Service are the same and also the supported cipher suites for the services and APIs are the same. This could indicate Oracle has public cloud wide standards for this and they are doing a good job at implementing it!</p> <p>Supported cipher suites</p> <pre>TLS 1.2 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014) ECDH secp256r1 (eq. 3072 bits RSA) FS TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (0xc027) ECDH secp256r1 (eq. 3072 bits RSA) FS TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013) ECDH secp256r1 (eq. 3072 bits RSA) FS TLS_RSA_WITH_AES_256_CBC_SHA256 (0x3d) TLS_RSA_WITH_AES_256_CBC_SHA (0x35) TLS_RSA_WITH_AES_128_CBC_SHA256 (0x3c) TLS_RSA_WITH_AES_128_CBC_SHA (0x2f) TLS 1.1 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014) ECDH secp256r1 (eq. 3072 bits RSA) FS TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013) ECDH secp256r1 (eq. 3072 bits RSA) FS TLS_RSA_WITH_AES_256_CBC_SHA (0x35) TLS_RSA_WITH_AES_128_CBC_SHA (0x2f) TLS 1.0 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014) ECDH secp256r1 (eq. 3072 bits RSA) FS TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013) ECDH secp256r1 (eq. 3072 bits RSA) FS TLS_RSA_WITH_AES_256_CBC_SHA (0x35) TLS_RSA_WITH_AES_128_CBC_SHA (0x2f) TLS_RSA_WITH_3DES_EDE_CBC_SHA (0xa) <strong>WEAK </strong></pre> <h2>Liabilities in the cipher suites</h2> <p>You should not read this as an attack against the choices made in the Oracle Public Cloud for SSL connections. Generally the cipher suites Oracle chose to support are pretty secure and there is no need to worry unless you want to protect yourself against groups like the larger security agencies. When choosing your cipher suite in your own implementations outside the mentioned Oracle cloud products, I would go for stronger cipher suites than which are provided. Read <a href="https://technology.amis.nl/2017/07/04/ssltls-choose-cipher-suite/">here</a>.</p> <h3>TLS 1.0 support</h3> <p>TLS 1.0 is supported by the Oracle Cloud services. This standard is outdated and should be disabled. Read <a href="https://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet">the following</a> for some arguments of why you should do this. It is possible Oracle choose to support TLS 1.0 since some older browsers (really old ones like IE6) do not support TLS 1.1 and 1.2 yet. This is a consideration of compatibility versus security.</p> <h3>TLS_RSA_WITH_3DES_EDE_CBC_SHA might be a weak cipher</h3> <p>There are questions whether TLS_RSA_WITH_3DES_EDE_CBC_SHA could be considered insecure (read <a href="https://security.stackexchange.com/questions/146710/is-the-3des-algorithm-secure">here</a>, <a href="https://security.stackexchange.com/questions/1886/why-triple-des-used-in-ede-mode">here</a> and <a href="https://security.stackexchange.com/questions/103992/tls-rsa-with-3des-ede-cbc-sha-reported-as-112-bits">here</a> why). Also SSLLabs says it is weak. You can mitigate some of the vulnerabilities by not using CBC mode, but that is not an option in the Oracle cloud as <a href="https://en.wikipedia.org/wiki/Galois/Counter_Mode">GCM</a> is not supported (see more below). If a client indicates he only supports TLS_RSA_WITH_3DES_EDE_CBC_SHA, this cipher suite is used for the SSL connection making you vulnerable to collision attacks like <a href="https://sweet32.info/">sweet32</a>. Also it uses a SHA1 hash which can be considered insecure (read more below).</p> <h3>Weak hashing algorithms</h3> <p>There are no cipher suites available which provide SHA384 hashing. Only SHA256 and SHA. SHA1 (SHA) is considered insecure (see <a href="https://arstechnica.com/security/2017/02/at-deaths-door-for-years-widely-used-sha1-function-is-now-dead/">here</a> and <a href="https://security.stackexchange.com/questions/133665/excluding-cipher-suites-containing-sha-or-aes128">here</a>. plenty of other references to this can be found easily).</p> <h3>No GCM mode support</h3> <p>GCM provides data authenticity (integrity) and confidentiality checking. It is more <a href="https://en.wikipedia.org/wiki/Galois/Counter_Mode">efficient and performant</a> compared to CBC mode. CBC only provides <a href="https://crypto.stackexchange.com/questions/2310/what-is-the-difference-between-cbc-and-gcm-mode">authenticity/integrity</a> but no confidentiality checking. GCM uses a so-called nonce. You cannot use the same nonce to encrypt data with the same key twice.</p> <h3>Wildcard certificates are used</h3> <p>As you can see in the screenshot below, the certificate used for my Mobile Cloud Service contains a wildcard: *.mobileenv.us2.oraclecloud.com.</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/CaptureWildcard-certificate.png?ssl=1"><img data-attachment-id="45518" data-permalink="https://technology.amis.nl/2017/07/26/oracle-mobile-cloud-service-mcs-integration-cloud-service-ics-cipher-how-secure-tls-connection/capturewildcard-certificate/" data-orig-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/CaptureWildcard-certificate.png?fit=611%2C660&amp;ssl=1" data-orig-size="611,660" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="CaptureWildcard certificate" data-image-description="" data-medium-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/CaptureWildcard-certificate.png?fit=278%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/CaptureWildcard-certificate.png?fit=611%2C660&amp;ssl=1" class="aligncenter size-medium wp-image-45518" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/CaptureWildcard-certificate.png?resize=278%2C300&#038;ssl=1" alt="" srcset="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/CaptureWildcard-certificate.png?resize=278%2C300&amp;ssl=1 278w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/CaptureWildcard-certificate.png?w=611&amp;ssl=1 611w" sizes="(max-width: 278px) 100vw, 278px" data-recalc-dims="1" /></a></p> <p>This means the same certificate is used for all Mobile Cloud Service hosts in a data center unless specifically overridden. See <a href="https://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet">here</a> Rule &#8211; Do Not Use Wildcard Certificates. They violate <a href="https://en.wikipedia.org/wiki/Principle_of_least_privilege">the principle of least privilege</a>. If you decide to implement two-way SSL, I would definitely consider using your own certificates since you want to avoid trust on the data center level. They also violate the <a href="https://www.cabforum.org/EV_Certificate_Guidelines.pdf">EV Certificate Guidelines</a>. Since the certificate is per data center, there is no difference between the certificate used for development environments compared to production environments. In addition, everyone in the same data center will use the same certificate. Should the private key be compromised (of course Oracle will try not to let this happen!), this will be an issue for the entire data center and everyone using the default certificate.</p> <p>Oracle provides the option to use your own certificates and even recommends this. See <a href="http://www.ateam-oracle.com/https-and-trust-in-oracle-public-cloud/">here</a>. This allows you to manage your own host specific certificate instead of the one used by the data center.</p> <h3>Choice of keys</h3> <p>Only RSA and ECDHE keys are used and no DSA/DSS keys. Also the ECDHE keys are given priority above the RSA keys. ECDHE gives forward secrecy. Read more <a href="http://javaoraclesoa.blogspot.nl/2017/07/ssltls-how-to-choose-your-cipher-suite.html">here</a>. DHE however is preferred above ECDHE (see <a href="https://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet">here</a>) since ECDHE uses Elliptic Curves and there are doubts they are really secure. Read <a href="http://safecurves.cr.yp.to/">here</a> and <a href="https://www.schneier.com/blog/archives/2013/09/the_nsa_is_brea.html#c1675929">here</a>. Oracle does not provide DHE support in their list of cipher suites.</p> <h2>Strengths of the cipher suites</h2> <p>Is it all bad? No, definitely not! You can see Oracle has put thought into choosing their cipher suites and only provide a select list. Maybe it is possible to request stronger cipher suites to be enabled by contacting Oracle support.</p> <h3>Good choice of encryption algorithm</h3> <p>AES is the preferred encryption algorithm (<a href="https://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet">here</a>). WITH_AES_256 is supported which is a good thing. WITH_AES_128 is also supported. This one is obviously weaker, but it is not really terrible that it is still used and for compatibility reasons, <a href="https://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet">OWASP even recommends TLS_RSA_WITH_AES_128_CBC_SHA</a> as cipher suite (also SHA1!) so they are not completely against it.</p> <h3>Good choice of ECDHE curve</h3> <p>The ECDHE curve used is the default most commonly used secp256r1 which is equivalent to 3072 bits RSA. <a href="https://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet">OWASP recommends</a> &gt; 2048 bits so this is ok.</p> <h3>No support for SSL2 and SSL3</h3> <p>Of course SSL2 and SSL3 are not secure anymore and usage should not be allowed.</p> <h1>So why these choices?</h1> <h2>Considerations</h2> <p>I&#8217;ve not been involved with these choices and have not talked to Oracle about this. In summary, I&#8217;m just guessing at the considerations.</p> <p>I can imagine the cipher suites have been chosen to create a balance between compatibility, performance and security. Also, they could be related to export restrictions / government regulations. The supported cipher suites do not all require the installation of JCE (<a href="http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html">here</a>) but some do. For example usage of AES_256 and ECDHE require the JCE cryptographic provider but AES_128 and RSA do not. Also of course compatibility is taken into consideration. The list of supported cipher suites are common cipher suites supported by most web browsers (see <a href="https://en.wikipedia.org/wiki/Transport_Layer_Security#Web_browsers">here</a>). When taking performance into consideration (although this is hardware dependent, certain cipher suites perform better on ARM processors, others better on for example Intel), using ECDHE is not at all strange while not using GCM might not be a good idea (try for example the following: gnutls-cli &#8211;benchmark-ciphers). For Oracle using a single certificate for your data center with a wildcard is of course an easy and cheap default solution.</p> <h2>Recommendations</h2> <ul> <li>Customers should consider using their own host specific certificates instead of the default wildcard certificate.</li> <li>Customers should try to put constraints on their clients. Since the public cloud offers support for weak ciphers, the negotiation between client and server determines the cipher suite (and thus strength) used. If the client does not allow weak ciphers, relatively strong ciphers will be used. It of course depends if you are able to do this since if you would like to provide access to the entire world, controlling the client can be a challenge. If however you are integrating web services, you are more in control (unless of course a SaaS solution has limitations).</li> <li>Work with Oracle support to see what is possible and where the limitations are.</li> <li>Whenever you have more control, consider using <a href="http://javaoraclesoa.blogspot.nl/2017/07/ssltls-how-to-choose-your-cipher-suite.html">stronger cipher suites</a> like TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384</li> </ul> <p>The post <a rel="nofollow" href="https://technology.amis.nl/2017/07/26/oracle-mobile-cloud-service-mcs-integration-cloud-service-ics-cipher-how-secure-tls-connection/">Oracle Mobile Cloud Service (MCS) and Integration Cloud Service (ICS): How secure is your TLS connection?</a> appeared first on <a rel="nofollow" href="https://technology.amis.nl">AMIS Oracle and Java Blog</a>.</p> Maarten Smeets https://technology.amis.nl/?p=45514 Wed Jul 26 2017 09:27:44 GMT-0400 (EDT) Redo OP Codes: https://jonathanlewis.wordpress.com/2017/07/25/redo-op-codes/ <p>This posting was prompted by <a href="https://twitter.com/ora600pl/status/889747642414190592"><em><strong>a tweet from Kamil Stawiarski</strong></em></a> in response to a question about how he&#8217;d discovered the meaning of Redo Op Codes 5.1 and 11.6 &#8211; and credited me and Julian Dyke with &#8220;the hardest part&#8221;.</p> <p>Over the years I&#8217;ve accumulated (from Julian Dyke, or odd MoS notes, etc.) and let dribble out the occasional interpretation of a few op codes &#8211; typically in response to a question on the OTN database forum or the Oracle-L listserver, and sometimes as a throwaway comment in <a href="https://jonathanlewis.wordpress.com/2015/09/01/index-usage-3/"><em><strong>a blog post</strong></em></a>, but I&#8217;ve never published the full set of codes that I&#8217;ve acquired (or guessed) to date.</p> <p>It&#8217;s been some time since I&#8217;ve looked closely at a redo stream, and there are many features of Oracle that I&#8217;ve never had to look at at the level of the redo so there are plenty of gaps in the list &#8211; and maybe a few people will use the comments to help fill the gaps.</p> <p>It&#8217;s possible that I may be able to add more op codes over the new days &#8211; I know that somewhere I have some op codes relating to space management, and a batch relating to LOB handling, but it looks like I forgot to add them to the master list &#8211; so here&#8217;s what I can offer so far:</p> <pre class="brush: plain; gutter: false; title: ; notranslate"> 1 Transaction Control 2 Transaction read 3 Transaction update 4 Block cleanout 4.1 Block cleanout record 4.2 Physical cleanout 4.3 Single array change 4.4 Multiple array changes 4.5 Format block 4.6 ktbcc redo - Commit Time Block Cleanout Change (?RAC, ?recursive, ?SYS objects) 5 Transaction undo management 5.1 Update undo block 5.2 Get undo header 5.3 Rollout a transaction begin 5.4 On a rollback or commit 5.5 Create rollback segmenr 5.6 On a rollback of an insert 5.7 In the ktubl for 'dbms_transaction.local_transaction_id' (begin transaction) - also arrives for incoming distributed tx, no data change but TT slot acquired. Also for recursive transaction (e.g. truncate). txn start scn: 0xffff.ffffffff 5.8 Mark transaction as dead 5.9 Rollback extension of rollback seg 5.10 Rollback segment header change for extension of rollback seg 5.11 Mark undo as applied during rollback 5.19 Transaction audit record - first 5.20 Transaction audit record - subsequent 5.23 ktudbr redo: disable block level recovery (reports XID) 5.24 ktfbhundo - File Space Header Undo 6 Control file 10 Index 10.1 SQL load index block 10.2 Insert Leaf Row 10.3 Purge Leaf Row 10.4 Delete Leaf Row 10.5 Restore Leaf during rollback 10.6 (kdxlok) Lock block (pre-split?) 10.7 (kdxulo) unlock block during undo 10.8 (kdxlne) initialize leaf block being split 10.9 (kdxair) apply XAT do to ITL 1 -- related to leaf block split 10.10 Set leaf block next pointer 10.11 (kdxlpr) (UNDO) set kdxleprv (previous pointer) 10.12 Initialize root block after split 10.13 index redo (kdxlem): (REDO) make leaf block empty, 10.14 Restore block before image 10.15 (kdxbin) Insert branch block row 10.16 Purge branch row 10.17 Initialize new branch block 10.18 Update key data in row -- index redo (kdxlup): update keydata 10.19 Clear split flag 10.20 Set split flag 10.21 Undo branch operation 10.22 Undo leaf operation 10.23 restore block to tree 10.24 Shrink ITL 10.25 format root block 10.26 format root block (undo) 10.27 format root block (redo) 10.28 Migrating block (undo) 10.29 Migrating block (redo) 10.30 Update nonkey value 10.31 index root block redo (kdxdlr): create/load index 10.34 make branch block empty 10.35 index redo (kdxlcnu): update nonkey 10.37 undo index change (kdxIndexlogicalNonkeyUpdate) -- bitmap index 10.38 index change (kdxIndexlogicalNonkeyUpdate) -- bitmap index 10.39 index redo (kdxbur) : branch block update range 10.40 index redo (kdxbdu) : branch block DBA update, 11 Table 11.1 undo row operation 11.2 insert row piece 11.3 delete row piece 11.4 lock row piece 11.5 update row piece 11.6 overwrite row piece 11.7 manipulate first column 11.8 change forwarding address - migration 11.9 change cluster key index 11.10 Set Cluster key pointers 11.11 Insert multiple rows 11.12 Delete multiple rows 11.13 toggle block header flags 11.17 Update multiple rows 11.19 Array update ? 11.20 SHK (mark as shrunk?) 11.24 HCC update rowid map ? 12 Cluster 13 Segment management 13.1 ktsfm redo: -- allocate space ?? 13.5 KTSFRBFMT (block format) redo 13.6 (block link modify) (? index ) (options: lock clear, lock set) 13.7 KTSFRGRP (fgb/shdr modify freelist) redo: (options unlink block, move HWM) 13.13 ktsbbu undo - undo operation on bitmap block 13.14 ktsbbu undo - undo operation on bitmap block 13.17 ktsphfredo - Format Pagetable Segment Header 13.18 ktspffredo - Format Level1 Bitmap Block 13.19 ktspsfredo - Format Level2 Bitmap Block 13.21 ktspbfredo - Format Pagetable Datablock 13.22 State change on level 1 bitmap block 13.23 Undo on level 1 bitmap block 13.24 Bitmap block (BMB) state change (level 2 ?) 13.25 Undo on level 2 bitmap block 13.26 ?? Level 3 bitmap block state change ?? 13.27 ?? Level 3 bitmap block undo ?? 13.28 Update LHWM and HHWM on segment header 13.29 Undo on segment header 13.31 Segment shrink redo for L1 bitmap block 13.32 Segment shrink redo for segment header block 14 Extent management 14.1 ktecush redo: clear extent control lock 14.2 ktelk redo - lock extent (map) 14.3 Extent de-allocate 14.4 kteop redo - redo operation on extent map 14.5 kteopu undo - undo operation on extent map 14.8 kteoputrn - undo operation for flush for truncate 15 Tablespace 16 Row cache 17 Recovery management 17.1 End backup mode marker 17.3 Crash Recovery at scn: 0x0000.02429111 17.28 STANDBY METADATA CACHE INVALIDATION 18 Block image (hot backups) 18.1 Block image 18.3 Reuse redo entry (Range reuse: tsn=1 base=8388753 nblks=8) or (Object reuse: tsn=2 objd=76515) 19 Direct loader 19.1 Direct load block record 19.2 Nologging invalidate block range Direct Loader invalidate block range redo entry 20 Compatibility segment 21 LOB segment 21.1 kdlop (Long Feild) redo: [sic] (insert basicfile clob) 22 Locally managed tablespace 22.2 ktfbhredo - File Space Header Redo: 22.3 ktfbhundo - File Space Header Undo: 22.5 ktfbbredo - File BitMap Block Redo: 22.16 File Property Map Block (FPM) 23 Block writes 23.1 Block written record 23.2 Block read record (BRR) -- reference in Doc ID: 12423475.8 24 DDL statements 24.1 DDL 24.2 Direct load block end mark 24.4 ?? Media recovery marker 24.10 ?? 24.11 ?? </pre> <p>(E &amp; O.E) &#8211; you&#8217;ll notice that some of the descriptions include question marks &#8211; those are guesses &#8211; and some are little more than the raw text extracted from a redo change vector with no interpretation of what they might mean.</p> <h2>Update</h2> <p>It didn&#8217;t take long for someone to email me a much longer list that has been <a href="http://www.askmaclean.com/archives/redo-opcode-reference.html"><em><strong>published elsewhere on the Internet</strong></em></a>. The results don&#8217;t have the hierarchical style display I have above, so I may copy the extra entries into the list above when I get a little time.</p><br /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonathanlewis.wordpress.com/17364/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonathanlewis.wordpress.com/17364/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=jonathanlewis.wordpress.com&#038;blog=491988&#038;post=17364&#038;subd=jonathanlewis&#038;ref=&#038;feed=1" width="1" height="1" /> Jonathan Lewis http://jonathanlewis.wordpress.com/?p=17364 Tue Jul 25 2017 13:17:43 GMT-0400 (EDT) Connecting a Node.js App in ACCS to Exadata Express https://jsao.io/2017/07/connecting-a-node-js-app-in-accs-to-exadata-express/ <p>Two of my favorite Oracle Cloud services are the <a href="https://cloud.oracle.com/en_US/database/exadata-express/features">Exadata Express Cloud Service</a> (Exadata Express) and the <a href="https://cloud.oracle.com/en_US/application-container-cloud">Application Container Cloud Service</a> (ACCS)Exadata Express is a fully managed Oracle Database service at an <a href="https://cloud.oracle.com/en_US/database/exadata-express/pricing">entry-level price point</a> for small to medium sized data and ACCS is an easy way to deploy apps in Docker containers. In this post, I&#8217;ll demonstrate how to connect these two services at the most basic level.<br /> <span id="more-2430"></span><br /> What do I mean by &#8220;the most basic level&#8221;? First, I&#8217;m not going to demonstrate how to create an Oracle Cloud account with these two services &#8211; I&#8217;ll assume you&#8217;ve already done that. Also, the demo app in this post will be minimalistic. Normally, I might use the <a href="https://cloud.oracle.com/en_US/developer-service">Developer Cloud Service</a> to create a Git repo with an automated build process &#8211; not here. This post will focus only on what&#8217;s needed to get these two services connected.</p> <p>Contents:</p> <ul> <li><a href="#create-test-app">Create test app</a></li> <li><a href="#add-client-credentials">Add client credentials</a></li> <li><a href="#deploy-app">Deploy app</a></li> <li><a href="#add-environment-variables">Add environment variables</a></li> </ul> <h4 id="create-test-app">Create test app</h4> <p>Create a new directory named <strong>connection-test-app</strong> and add the following two files.</p> <pre class="crayon-plain-tag">{ &quot;runtime&quot;:{ &quot;majorVersion&quot;:&quot;6&quot; }, &quot;command&quot;: &quot;node index.js&quot;, &quot;release&quot;: {}, &quot;notes&quot;: &quot;&quot; }</pre> <p>ACCS apps often have one or two <a href="https://docs.oracle.com/en/cloud/paas/app-container-cloud/dvcjv/creating-meta-data-files.html">metadata files</a>. In this case, the <strong>manifest.json</strong> is used to specify the version of Node.js to run and the command to use to start the application.</p> <pre class="crayon-plain-tag">const http = require('http'); const oracledb = require('oracledb'); let error; let user; oracledb.getConnection( { user: process.env.EECS_USER, password: process.env.EECS_PASSWORD, connectString: 'dbaccess' }, function(err, connection) { if (err) {error = err; return;} connection.execute('select user from dual', [], function(err, result) { if (err) {error = err; return;} user = result.rows[0][0]; error = null; connection.close(function(err) { if (err) {console.log(err);} }); }) } ); http.createServer(function(request, response) { response.writeHead(200, {'Content-Type': 'text/plain'}); if (error === null) { response.end('Connection test succeeded. You connected to Exadata Express as ' + user + '!'); } else if (error instanceof Error) { response.write('Connection test failed. Check the settings and redeploy app!\n'); response.end(error.message); } else { response.end('Connection test pending. Refresh after a few seconds...'); } }).listen(process.env.PORT);</pre> <p>The <strong>index.js</strong> contains logic that runs a connection test (lines 6-26) and uses a simple web server to let us know the results of the test (lines 28-39). Note that three environment variables are referenced via <span class="inline-code">process.env</span>. PORT is <a href="https://docs.oracle.com/en/cloud/paas/app-container-cloud/dvcjv/making-application-configurable-runtime.html">defined by ACCS</a>, but the other environment variables will be created in the last step of this tutorial.</p> <h4 id="add-client-credentials">Add client credentials</h4> <p>To connect to Exadata Express, you must first download the client credentials. Open a browser and sign into your Oracle Cloud account. Then go to the Exadata Express service console, select the service instance that you&#8217;d like to connect to, and then click the link to download the client credentials.</p> <p><a href="https://jsao.io/wp-content/uploads/2017/07/download-client-credentials.png" rel="prettyPhoto[gallery-2b8U]"><img src="https://jsao.io/wp-content/uploads/2017/07/download-client-credentials.png" alt="" width="802" height="233" class="alignnone size-full wp-image-2443" srcset="https://jsao.io/wp-content/uploads/2017/07/download-client-credentials.png 802w, https://jsao.io/wp-content/uploads/2017/07/download-client-credentials-300x87.png 300w, https://jsao.io/wp-content/uploads/2017/07/download-client-credentials-768x223.png 768w" sizes="(max-width: 802px) 100vw, 802px" /></a></p> <p>Before the client credentials download, you will be prompted to enter a password. You&#8217;ll need the password when connecting to Exadata Express using a Java keystore (e.g. with SQL Developer), but not when connecting to the database with OCI (e.g. with node-oracledb). </p> <p>Enter and confirm the password, then click <strong>Download</strong>. A file named <strong>client_credentials.zip</strong> will be downloaded to your machine. Once downloaded, you must treat the files securely to prevent unauthorized database access. </p> <p>Extract the contents of the <strong>client_credentials.zip</strong> file to the <strong>connection-test-app</strong> directory created earlier. The contents of that directory should appear as follows:</p> <p><a href="https://jsao.io/wp-content/uploads/2017/07/connection-test-app-directory.png" rel="prettyPhoto[gallery-2b8U]"><img src="https://jsao.io/wp-content/uploads/2017/07/connection-test-app-directory.png" alt="" width="298" height="110" class="alignnone size-full wp-image-2446" /></a></p> <p>Change directories into the <strong>client_credentials</strong> directory and open the <strong>sqlnet.ora</strong> file in a text editor. Change the value of DIRECTORY from <span class="inline-code">?/network/admin</span> to <span class="inline-code">/u01/app/client_credentials</span>. Note that when deploying an app to ACCS, the app&#8217;s files are copied to the <strong>/u01/app</strong> directory of the container. The <strong>sqlnet.ora</strong> file must point to the location of the client credentials, which can differ depending on the environment.</p> <h4 id="deploy-app">Deploy app</h4> <p>At this point, we can deploy the app to ACCS. Change directories back up to <strong>connection-test-app</strong> and compress the contents (not the directory itself) in a new zip file named Archive.zip.</p> <p><a href="https://jsao.io/wp-content/uploads/2017/07/archive.zip.png" rel="prettyPhoto[gallery-2b8U]"><img src="https://jsao.io/wp-content/uploads/2017/07/archive.zip.png" alt="" width="288" height="128" class="alignnone size-full wp-image-2453" /></a></p> <p>Return to the browser and navigate to the ACCS service console. Click the <strong>Create Application</strong> button.</p> <p><a href="https://jsao.io/wp-content/uploads/2017/07/accs-create-app.png" rel="prettyPhoto[gallery-2b8U]"><img src="https://jsao.io/wp-content/uploads/2017/07/accs-create-app.png" alt="" width="802" height="380" class="alignnone size-full wp-image-2465" srcset="https://jsao.io/wp-content/uploads/2017/07/accs-create-app.png 802w, https://jsao.io/wp-content/uploads/2017/07/accs-create-app-300x142.png 300w, https://jsao.io/wp-content/uploads/2017/07/accs-create-app-768x364.png 768w" sizes="(max-width: 802px) 100vw, 802px" /></a></p> <p>Select <strong>Node</strong> as the application platform.</p> <p><a href="https://jsao.io/wp-content/uploads/2017/07/accs-platform.png" rel="prettyPhoto[gallery-2b8U]"><img src="https://jsao.io/wp-content/uploads/2017/07/accs-platform.png" alt="" width="794" height="1058" class="alignnone size-full wp-image-2467" /></a></p> <p>Set the application name to <strong>eecstest</strong>, use the <strong>Archive</strong> file picker to select the application archive created in the previous step, and then set the <strong>Instances</strong> and <strong>Memory</strong> options to <strong>1</strong>. Click <strong>Create</strong> to start the deployment process.</p> <p><a href="https://jsao.io/wp-content/uploads/2017/07/accs-app-properties.png" rel="prettyPhoto[gallery-2b8U]"><img src="https://jsao.io/wp-content/uploads/2017/07/accs-app-properties.png" alt="" width="650" height="754" class="alignnone size-full wp-image-2472" srcset="https://jsao.io/wp-content/uploads/2017/07/accs-app-properties.png 650w, https://jsao.io/wp-content/uploads/2017/07/accs-app-properties-259x300.png 259w" sizes="(max-width: 650px) 100vw, 650px" /></a></p> <p>The app will appear in the list of ACCS applications where you can obtain its URL.</p> <p><a href="https://jsao.io/wp-content/uploads/2017/07/accs-app-created.png" rel="prettyPhoto[gallery-2b8U]"><img src="https://jsao.io/wp-content/uploads/2017/07/accs-app-created.png" alt="" width="1002" height="228" class="alignnone size-full wp-image-2474" srcset="https://jsao.io/wp-content/uploads/2017/07/accs-app-created.png 1002w, https://jsao.io/wp-content/uploads/2017/07/accs-app-created-300x68.png 300w, https://jsao.io/wp-content/uploads/2017/07/accs-app-created-768x175.png 768w, https://jsao.io/wp-content/uploads/2017/07/accs-app-created-1000x228.png 1000w" sizes="(max-width: 1002px) 100vw, 1002px" /></a></p> <p>If you navigate to that URL in a browser, you&#8217;ll see that the test has failed &#8211; this is expected.</p> <p><a href="https://jsao.io/wp-content/uploads/2017/07/test-failed.png" rel="prettyPhoto[gallery-2b8U]"><img src="https://jsao.io/wp-content/uploads/2017/07/test-failed.png" alt="" width="802" height="171" class="alignnone size-full wp-image-2475" srcset="https://jsao.io/wp-content/uploads/2017/07/test-failed.png 802w, https://jsao.io/wp-content/uploads/2017/07/test-failed-300x64.png 300w, https://jsao.io/wp-content/uploads/2017/07/test-failed-768x164.png 768w" sizes="(max-width: 802px) 100vw, 802px" /></a></p> <p>Just one last step to get everything working&#8230;</p> <h4 id="add-environment-variables">Add environment variables</h4> <p>Return to the ACCS service console and drill into the <strong>eecstest</strong> app. Select the <strong>Deployments</strong> option on the left and click the <strong>Add</strong> button under <strong>Environment Variables</strong>. </p> <p><a href="https://jsao.io/wp-content/uploads/2017/07/accs-deployments.png" rel="prettyPhoto[gallery-2b8U]"><img src="https://jsao.io/wp-content/uploads/2017/07/accs-deployments.png" alt="" width="802" height="309" class="alignnone size-full wp-image-2477" srcset="https://jsao.io/wp-content/uploads/2017/07/accs-deployments.png 802w, https://jsao.io/wp-content/uploads/2017/07/accs-deployments-300x116.png 300w, https://jsao.io/wp-content/uploads/2017/07/accs-deployments-768x296.png 768w" sizes="(max-width: 802px) 100vw, 802px" /></a></p> <p>Set <strong>Name</strong> to <strong>TNS_ADMIN</strong> and <strong>Value</strong> to <strong>$APP_HOME/client_credentials</strong>, then click <strong>Save</strong>.</p> <p><a href="https://jsao.io/wp-content/uploads/2017/07/accs-add-env-var.png" rel="prettyPhoto[gallery-2b8U]"><img src="https://jsao.io/wp-content/uploads/2017/07/accs-add-env-var.png" alt="" width="504" height="234" class="alignnone size-full wp-image-2479" srcset="https://jsao.io/wp-content/uploads/2017/07/accs-add-env-var.png 504w, https://jsao.io/wp-content/uploads/2017/07/accs-add-env-var-300x139.png 300w" sizes="(max-width: 504px) 100vw, 504px" /></a></p> <p>Repeat the previous steps to create two more environment variables. The first will be named <strong>EECS_USER</strong> and its value will be the username of the Exadata Express database user you want to connect with. The last environment variable will be named <strong>EECS_PASSWORD</strong> and its value will be the password of the database user specified in <strong>EECS_USER</strong>. </p> <p>After creating the three environment variables, scroll to the top and click the <strong>Apply Edits</strong> button. This will redeploy the application with the new settings.</p> <p><a href="https://jsao.io/wp-content/uploads/2017/07/accs-apply-edits.png" rel="prettyPhoto[gallery-2b8U]"><img src="https://jsao.io/wp-content/uploads/2017/07/accs-apply-edits.png" alt="" width="802" height="117" class="alignnone size-full wp-image-2481" srcset="https://jsao.io/wp-content/uploads/2017/07/accs-apply-edits.png 802w, https://jsao.io/wp-content/uploads/2017/07/accs-apply-edits-300x44.png 300w, https://jsao.io/wp-content/uploads/2017/07/accs-apply-edits-768x112.png 768w" sizes="(max-width: 802px) 100vw, 802px" /></a></p> <p>After the app is deployed, you can navigate to its URL where you should see that the connection test has succeeded.</p> <p><a href="https://jsao.io/wp-content/uploads/2017/07/test-succeeded.png" rel="prettyPhoto[gallery-2b8U]"><img src="https://jsao.io/wp-content/uploads/2017/07/test-succeeded.png" alt="" width="802" height="154" class="alignnone size-full wp-image-2482" srcset="https://jsao.io/wp-content/uploads/2017/07/test-succeeded.png 802w, https://jsao.io/wp-content/uploads/2017/07/test-succeeded-300x58.png 300w, https://jsao.io/wp-content/uploads/2017/07/test-succeeded-768x147.png 768w" sizes="(max-width: 802px) 100vw, 802px" /></a></p> <p>As you can see, connecting these two services isn&#8217;t difficult once you know what the moving pieces are. When working with a real app, I recommend keeping the client credentials separate from the application files. </p> <p>If developing locally, the TNS_ADMIN environment variable can point to a local copy of the client credentials used for dev. When deploying to another environment in ACCS, you can use a Developer Cloud Service build process to download the correct client credentials from the Storage Service and add them to the app files before deploying them to ACCS.</p> danmcghan https://jsao.io/?p=2430 Tue Jul 25 2017 09:32:52 GMT-0400 (EDT) Industrial IoT Strategy, The Transference of Risk by using a Digital Twin https://technology.amis.nl/2017/07/25/industrial-iot-strategy-transference-risk-using-digital-twin/ <p><span style="font-weight: 400;">The Internet of Things (IoT) is all about getting in-depth insight about your customers. It is the inter-networking of physical devices, vehicles (also referred to as &#8220;connected devices&#8221; and &#8220;smart devices&#8221;), buildings, and other items embedded with electronics, software, sensors, actuators, and network connectivity which enable these objects to collect and exchange data. </span></p> <p><span style="font-weight: 400;">For me, IoT is an extension of data integration and big data. The past decade I have worked in the integration field and adding smart devices to these systems makes it even more interesting. Connecting the real world with the digital one creates a huge potential for valuable digital services on top of the physical world. This article contains our vision and guidance for a strategy for The Internet of Things based on literature and our own experience. </span></p> <h1><span style="font-weight: 400;">Drivers for business. </span></h1> <p><span style="font-weight: 400;">Everybody is talking about<a href="https://technology.amis.nl/2007/03/14/ctas-and-iot/"> The Internet Of Things</a>. This is going to become a billion dollar business in the near future. IoT has become a blanket term for smart, connected devices. Technology is giving these devices the ability to sense/act for themselves, cause an effect on the environment and be controlled by us.  Especially in the industrial world the application of smart sensors has the potential to change the landscape of current supplier of large scale industrial solutions. </span></p> <h2><span style="font-weight: 400;">This is the perfect storm</span></h2> <p><span style="font-weight: 400;">For decades we have had devices with sensors and connectivity,  but these devices never reached the market potential they currently have until now. IoT is slowly becoming a mainstream technology. Only 2 years ago there were technical limitations in processing power, storage, connectivity, and platform accessibility hindering the growth of the usage of IoT devices. </span></p> <p><span style="font-weight: 400;">Now we see a perfect storm: The advances in cloud computing, big data storage, an abundance of fast internet access, machine learning, and smart sensors come together. The past economic crisis has made businesses start focusing more on lean manufacturing, measuring and real-time feedback. And finally, our addiction to social media and direct interaction makes us accustomed to instant feedback. We demand real time process improvement and in-depth, highly personalized services. This can only be achieved by probing deep into data about the behavior of consumers. </span></p> <h1><span style="font-weight: 400;"><img data-attachment-id="45484" data-permalink="https://technology.amis.nl/2017/07/25/industrial-iot-strategy-transference-risk-using-digital-twin/iot-and-smart-city/" data-orig-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/iot-and-smart-city--e1500925211851.jpg?fit=1191%2C309&amp;ssl=1" data-orig-size="1191,309" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="iot and smart city" data-image-description="" data-medium-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/iot-and-smart-city--e1500925211851.jpg?fit=300%2C78&amp;ssl=1" data-large-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/iot-and-smart-city--e1500925211851.jpg?fit=702%2C182&amp;ssl=1" class="aligncenter wp-image-45484 size-large" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/iot-and-smart-city--e1500925211851-1024x266.jpg?resize=702%2C182&#038;ssl=1" alt="" srcset="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/iot-and-smart-city--e1500925211851.jpg?resize=1024%2C266&amp;ssl=1 1024w, https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/iot-and-smart-city--e1500925211851.jpg?resize=300%2C78&amp;ssl=1 300w, https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/iot-and-smart-city--e1500925211851.jpg?resize=768%2C199&amp;ssl=1 768w, https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/iot-and-smart-city--e1500925211851.jpg?w=1191&amp;ssl=1 1191w" sizes="(max-width: 702px) 100vw, 702px" data-recalc-dims="1" />Digital Transformation changes our economy.  </span></h1> <p><span style="font-weight: 400;">Smart devices are a driver for efficiency. </span><span style="font-weight: 400;">On one hand, we can save power usage &#8211; by switching off unused machines for example &#8211; and boost effective usage of machines by optimizing their utilization</span><span style="font-weight: 400;">. For example: have cleaning robots to visit rooms with a lot of traffic more often, instead of the same schedule for all rooms.  Intensive </span><span style="font-weight: 400;">data gathering offers the possibility to optimize our processes and apply effective usage of machines and resources.  These solutions are aimed at saving money. </span><span style="font-weight: 400;">Your customers expect this process data as an inclusive service on top of the product they buy from you. In practice: look at the Nest </span><span style="font-weight: 400;">thermostat</span><span style="font-weight: 400;">; the dashboard and data are perceived as part of the device. Nobody is going to pay extra for the Nest dashboard.  </span></p> <h2><span style="font-weight: 400;">Create value using a digital twin of your customer</span></h2> <p><span style="font-weight: 400;">You can make a real difference with IoT when you consider the long term strategic goals of your company. Smart devices make it possible to acquire extensive data of your customer.  This information is very valuable, especially when you combine individual sensor data of each customer to a complete digital representation of the customer (also called digital twin). This is very valuable for both B2B and B2C businesses.  Having a digital twin of your customer helps you know exactly what your customer needs and what makes them successful.  You can create additional services and better a user experience with the data you acquire.  Your customers are willing to pay for an add-on when you are able to convert their data into valuable content and actions. This is how you create more revenue.</span></p> <h1><span style="font-weight: 400;"><img data-attachment-id="45485" data-permalink="https://technology.amis.nl/2017/07/25/industrial-iot-strategy-transference-risk-using-digital-twin/iot-city-smart/" data-orig-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/iot-city-smart-.jpg?fit=5184%2C3456&amp;ssl=1" data-orig-size="5184,3456" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="iot city smart" data-image-description="" data-medium-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/iot-city-smart-.jpg?fit=300%2C200&amp;ssl=1" data-large-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/iot-city-smart-.jpg?fit=702%2C468&amp;ssl=1" class="size-large wp-image-45485 alignright" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/iot-city-smart-.jpg?resize=702%2C468&#038;ssl=1" alt="" srcset="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/iot-city-smart-.jpg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/iot-city-smart-.jpg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/iot-city-smart-.jpg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/iot-city-smart-.jpg?w=1404&amp;ssl=1 1404w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/iot-city-smart-.jpg?w=2106&amp;ssl=1 2106w" sizes="(max-width: 702px) 100vw, 702px" data-recalc-dims="1" />IoT is all about transference of risk and responsibility </span></h1> <p><span style="font-weight: 400;">I predict IoT will transform the economy. With IoT, you are able to influence your customer and their buying habits. </span><span style="font-weight: 400;">You are able to measure the status and quality of a heating installation, car engine or security system. You are able to influence the operation of these machines and warn your customer up front about possible outages due to wear and usage. Next logical step for your customer is to transfer the responsibility for these machines to you as a supplier.  This has huge consequences for the risk profile of your company and the possible liabilities connected to it. Having an extensive sensor network and operational digital twin of the customer makes it possible to assess and control this risk. You can implement predictive maintenance and reduce the risk of an outage. Since you can predict possible malfunction since you have a vast amount of data and trained algorithms to predict the future state of the machines and your customers. Customers are prepared to pay an insurance fee if you can guarantee the quality of the their products and services. </span></p> <h1><span style="font-weight: 400;">How to create a profitable IoT strategy?</span></h1> <p>The first step is to determine what kind of company you want to be in the IoT realm. According to  <a href="http://ttps//www.strategy-business.com/article/00294?gko=a9303" target="_blank" rel="noopener nofollow">Frank Burkitt</a> and <a href="http://www.briansolis.com/2015/07/internet-things-whats-iot-strategy/" target="_blank" rel="noopener nofollow">Brian Solis</a> There are 3 types of companies building IoT services:</p> <ul> <li style="font-weight: 400;"><strong>Enablers<br /> </strong><span style="font-weight: 400;">These are the companies that develop and implement IoT technology; they deliver pure IoT solutions. Ranging from hardware to all kinds of cloud systems. They have no industry focus and deliver generic IoT solutions. The purpose of these companies is to process as high as the possible volume at a low price. The enablers focus on delivering endpoint networks and cloud infrastructure. This market will be dominated by a small number of global players who deliver devices, sensors, and suitable cloud infrastructure. </span></li> <li style="font-weight: 400;"><strong>Engagers</strong><br /> These are the companies who design, create, integrate, and deliver IoT services to customers. They will interact directly with the end users. The purpose of these companies is to deliver customer intimacy by adding close interaction with the end users. Usually via one specific industry or product stack. The engagers will focus on hubs and market-facing solutions like dashboards and historical data. This market will contain traditional software companies able to offer dashboards on top of existing systems and connecting IoT devices.</li> <li style="font-weight: 400;"><span style="font-weight: 400;"><strong>Enhancers</strong><br /> </span>These are the companies that deliver value-added services on top of those services delivered by the Engagers. The services of the Engagers are unique to IoT and add a lot of value to their end user. Their goal is to provide a richer end-user engagement, and surprise and delight the customer by offering them new services using the data from the customer themselves and third party sources. This market will be dominated by innovative software companies able to bridge the gap between IOT, Big Data and Machine Learning. These companies need to have an excellent technical and creative staff to offer new and disruptive solutions.</li> </ul> <h1><span style="font-weight: 400;">How to be successful in the IoT World?</span></h1> <ol> <li style="font-weight: 400;"><span style="font-weight: 400;">Decide the type of company you want to be: Enabler, Engager or Enhancer? Make sure if you are an enabler you need to offer a distinctive difference compared to existing platforms and devices. </span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Identify your target market as you need to specialize in making a significant difference. </span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Hire a designer and a business developer if you aren’t any of these. </span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Develop using building blocks. </span><span style="font-weight: 400;"><br /> </span><span style="font-weight: 400;">Enhance existing products and services. Be very selective about what you want to offer. </span><span style="font-weight: 400;">Do not invent the wheel yourself and use existing products and services and build on the things that are already being offered as SAAS solutions. </span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Create additional value<br /> </span>Enhance existing services with insight and algorithm. Design your service in such a way that you create additional value in your network. Create new business models and partner with companies outside your industry.</li> <li style="font-weight: 400;"><span style="font-weight: 400;">Invest in your company</span><span style="font-weight: 400;"><br /> </span><span style="font-weight: 400;">Train your employees and build relationships with other IoT companies.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Experiment with new ideas, </span><span style="font-weight: 400;">create an innovation lab and link to companies outside your comfort zone to add them to your service </span></li> </ol> <p><span style="font-weight: 400;">You are welcome to contact us if you want to know more about adding value to your products and services using IoT.<br /> We can help you make your products and services smart at scale.  Visit our <a href="https://www.amis.nl/wat-we-doen#/wat-we-doen/internet-of-things">IoT services page</a>. </span></p> <p>The post <a rel="nofollow" href="https://technology.amis.nl/2017/07/25/industrial-iot-strategy-transference-risk-using-digital-twin/">Industrial IoT Strategy, The Transference of Risk by using a Digital Twin</a> appeared first on <a rel="nofollow" href="https://technology.amis.nl">AMIS Oracle and Java Blog</a>.</p> Robbrecht van Amerongen https://technology.amis.nl/?p=45427 Tue Jul 25 2017 03:41:16 GMT-0400 (EDT) Oracle Compute Cloud – Uploading My Image – Part Two – Linux 7 https://technology.amis.nl/2017/07/24/oracle-compute-cloud-uploading-image-part-two-linux-7/ <p>In this sequel of part <a href="https://technology.amis.nl/2016/11/16/oracle-compute-cloud-my-linux-image/" target="_blank" rel="noopener">one</a> I will show how you can upload your own (Oracle) Linux 7 image in the IAAS Cloud of Oracle. This post will use the lessons learnt by using AWS which I described <a href="https://technology.amis.nl/2017/07/14/aws-build-oracle-linux-7-ami-cloud/" target="_blank" rel="noopener">here</a>.</p> <p>The tools used are: <a href="https://www.virtualbox.org/" target="_blank" rel="noopener">VirtualBox</a>, <a href="https://edelivery.oracle.com/linux" target="_blank" rel="noopener">Oracle Linux 7</a>, <a href="https://docs.oracle.com/en/cloud/iaas/compute-iaas-cloud/stcsg/building-your-own-machine-images.html#GUID-3438E5A1-D00A-4A01-B6BB-46D871334801" target="_blank" rel="noopener">Oracle IAAS Documentation</a> and lots of time.</p> <p>With Oracle as Cloud provider it is possible to use the UEKR3 or UEKR4 kernels in your image that you prepare in VirtualBox. There is no need to temporarily disable the UEKR3 or UEKR4 repo’s in your installation. I reused the VirtualBox VM that I’d prepared for the previous blog: <a href="https://technology.amis.nl/2017/07/14/aws-build-oracle-linux-7-ami-cloud/" target="_blank" rel="noopener">AWS &#8211; Build your own Oracle Linux 7 AMI in the Cloud</a>.</p> <h2>The details:</h2> <p>The main part here is (again) making sure that the XEN blockfront en netfront drivers are installed in your initramfs. There are multiple ways of doing so. I prefer changing dracut.conf.</p> <pre style="padding: 1em; border: 1px solid #dddddd; color: #000000; text-transform: none; line-height: 1.3em; text-indent: 0px; letter-spacing: normal; font-family: monospace, courier; font-size: 14px; font-style: normal; font-weight: normal; word-spacing: 0px; white-space: pre-wrap; orphans: 2; widows: 2; background-color: #f9f9f9; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"> # additional kernel modules to the default add_drivers+="<span style="background-color: #ffff00;">xen-blkfront xen-netfront</span>"</pre> <p>You could also use:</p> <pre style="padding: 1em; border: 1px solid #dddddd; color: #000000; text-transform: none; line-height: 1.3em; text-indent: 0px; letter-spacing: normal; font-family: monospace, courier; font-size: 14px; font-style: normal; font-weight: normal; word-spacing: 0px; white-space: pre-wrap; orphans: 2; widows: 2; background-color: #f9f9f9; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">rpm -qa kernel | sed 's/^kernel-//' | xargs -I {} dracut -f <span style="background-color: #ffff00;">--add-drivers 'xen-blkfront xen-netfront'</span> /boot/initramfs-{}.img {}</pre> <p>But it is easy to forget to check if you need to rebuild your initramfs after you have done a: “yum update”. I know, I have been there…</p> <p>The nice part of the Oracle <a href="http://www.oracle.com/webfolder/technetwork/tutorials/obe/cloud/compute-iaas/creating_a_custom_ol_machine_image/creating_a_custom_ol_machine_image.html#section11" target="_blank" rel="noopener">tutorial</a> is that you can minimize the size you need to upload by using sparse copy etc. But on Windows or in Cygwin that doesn’t work. Nor on my iMac. Therefore I had to jump through some hoops by using an other VirtualBox Linux VM that could access the image file and make a sparse copy, create a tar file and copy it back to the host OS (Windows or OSX).</p> <p>Then use the upload feature of <a href="https://docs.oracle.com/en/cloud/iaas/compute-iaas-cloud/stcsg/uploading-machine-image-files-oracle-storage-cloud-service.html" target="_blank" rel="noopener">Oracle Compute Cloud</a> or Oracle Storage Cloud to be exact.</p> <p>Tip: If you get errors that your password isn’t correct (like I did) you might not have set a <a href="http://docs.oracle.com/en/cloud/iaas/storage-cloud/cssto/selecting-replication-policy-your-service-instance.html" target="_blank" rel="noopener">replication policy</a>. (See the Note at step 7 in the documentation <a href="https://docs.oracle.com/en/cloud/iaas/compute-iaas-cloud/stcsg/uploading-machine-image-files-oracle-storage-cloud-service.html" target="_blank" rel="noopener">link</a>).</p> <p>Now you can associate your image file, which you just uploaded, to an image. Use a Name and Description that you like:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-17_54_30-Oracle-Compute-Cloud-Service-Images.png?ssl=1"><img style="display: inline; background-image: none;" title="2017-07-14 17_54_30-Oracle Compute Cloud Service - Images" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-17_54_30-Oracle-Compute-Cloud-Service-Images_thumb.png?resize=702%2C286&#038;ssl=1" alt="2017-07-14 17_54_30-Oracle Compute Cloud Service - Images" border="0" data-recalc-dims="1" /></a></p> <p>Then Press “Ok” to have the image created, and you will see messages similar to these on your screen:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-17_54_40-Inbox-Patrick.Roozen@amis.nl-Outlook.png?ssl=1"><img style="display: inline; background-image: none;" title="2017-07-14 17_54_40" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-17_54_40-Inbox-Patrick.Roozen@amis.nl-Outlook_thumb.png?resize=513%2C80&#038;ssl=1" alt="2017-07-14 17_54_40" border="0" data-recalc-dims="1" /></a></p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-17_54_45-Oracle-Compute-Cloud-Service-Images.png?ssl=1"><img style="display: inline; background-image: none;" title="2017-07-14 17_54_45-Oracle Compute Cloud Service - Images" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-17_54_45-Oracle-Compute-Cloud-Service-Images_thumb.png?resize=510%2C82&#038;ssl=1" alt="2017-07-14 17_54_45-Oracle Compute Cloud Service - Images" border="0" data-recalc-dims="1" /></a></p> <p>I now have two images created in IAAS. One exactly the same as my AWS image source and one with a small but important change:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-17_55_16-Oracle-Compute-Cloud-Service-Images.png?ssl=1"><img style="display: inline; background-image: none;" title="2017-07-14 17_55_16-Oracle Compute Cloud Service - Images" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-17_55_16-Oracle-Compute-Cloud-Service-Images_thumb.png?resize=640%2C114&#038;ssl=1" alt="2017-07-14 17_55_16-Oracle Compute Cloud Service - Images" border="0" data-recalc-dims="1" /></a></p> <p>Now create an instance with the recently uploaded image:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-17_55_37-Oracle-Compute-Cloud-Service-Images.png?ssl=1"><img style="display: inline; background-image: none;" title="2017-07-14 17_55_37-Oracle Compute Cloud Service - Images" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-17_55_37-Oracle-Compute-Cloud-Service-Images_thumb.png?resize=182%2C108&#038;ssl=1" alt="2017-07-14 17_55_37-Oracle Compute Cloud Service - Images" border="0" data-recalc-dims="1" /></a></p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-17_56_34-Oracle-Compute-Cloud-Service-Instance-Creation.png?ssl=1"><img style="display: inline; background-image: none;" title="2017-07-14 17_56_34-Oracle Compute Cloud Service - Instance Creation" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-17_56_34-Oracle-Compute-Cloud-Service-Instance-Creation_thumb.png?resize=702%2C155&#038;ssl=1" alt="2017-07-14 17_56_34-Oracle Compute Cloud Service - Instance Creation" border="0" data-recalc-dims="1" /></a></p> <p>Choose the shape that you need:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-17_56_45-Oracle-Compute-Cloud-Service-Instance-Creation.png?ssl=1"><img style="display: inline; background-image: none;" title="2017-07-14 17_56_45-Oracle Compute Cloud Service - Instance Creation" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-17_56_45-Oracle-Compute-Cloud-Service-Instance-Creation_thumb.png?resize=702%2C156&#038;ssl=1" alt="2017-07-14 17_56_45-Oracle Compute Cloud Service - Instance Creation" border="0" data-recalc-dims="1" /></a></p> <p>Do not forget to associate your SSH Keys with the instance or you will not be able to logon to the instance:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-17_58_18-Oracle-Compute-Cloud-Service-Instance-Creation.png?ssl=1"><img style="display: inline; background-image: none;" title="2017-07-14 17_58_18-Oracle Compute Cloud Service - Instance Creation" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-17_58_18-Oracle-Compute-Cloud-Service-Instance-Creation_thumb.png?resize=702%2C399&#038;ssl=1" alt="2017-07-14 17_58_18-Oracle Compute Cloud Service - Instance Creation" border="0" data-recalc-dims="1" /></a></p> <p>I left the Network details default:<br /> <a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-18_01_33-Oracle-Compute-Cloud-Service-Instance-Creation.png?ssl=1"><img style="display: inline; background-image: none;" title="2017-07-14 18_01_33-Oracle Compute Cloud Service - Instance Creation" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-18_01_33-Oracle-Compute-Cloud-Service-Instance-Creation_thumb.png?resize=702%2C407&#038;ssl=1" alt="2017-07-14 18_01_33-Oracle Compute Cloud Service - Instance Creation" border="0" data-recalc-dims="1" /></a></p> <p>To change the storage details of the boot disk press the “hamburger menu” on the right (Just below “Boot Drive”):</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-18_02_12-Oracle-Compute-Cloud-Service-Instance-Creation.png?ssl=1"><img style="display: inline; background-image: none;" title="2017-07-14 18_02_12-Oracle Compute Cloud Service - Instance Creation" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-18_02_12-Oracle-Compute-Cloud-Service-Instance-Creation_thumb.png?resize=702%2C234&#038;ssl=1" alt="2017-07-14 18_02_12-Oracle Compute Cloud Service - Instance Creation" border="0" data-recalc-dims="1" /></a></p> <p>I changed the boot disk from 11GB to 20GB so I can expand the filesystems if needed later on:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-18_03_21-Oracle-Compute-Cloud-Service-Instance-Creation.png?ssl=1"><img style="display: inline; background-image: none;" title="2017-07-14 18_03_21-Oracle Compute Cloud Service - Instance Creation" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-18_03_21-Oracle-Compute-Cloud-Service-Instance-Creation_thumb.png?resize=702%2C360&#038;ssl=1" alt="2017-07-14 18_03_21-Oracle Compute Cloud Service - Instance Creation" border="0" data-recalc-dims="1" /></a></p> <p>Review your input in the next step and press “Create” when you are satisfied:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-18_04_16-Oracle-Compute-Cloud-Service-Instance-Creation.png?ssl=1"><img style="display: inline; background-image: none;" title="2017-07-14 18_04_16-Oracle Compute Cloud Service - Instance Creation" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-18_04_16-Oracle-Compute-Cloud-Service-Instance-Creation_thumb.png?resize=505%2C81&#038;ssl=1" alt="2017-07-14 18_04_16-Oracle Compute Cloud Service - Instance Creation" border="0" data-recalc-dims="1" /></a></p> <p>You will see some messages passing by with the details of steps that have been put in motion:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-18_04_27-Oracle-Compute-Cloud-Service-Instances-Instances.png?ssl=1"><img style="display: inline; background-image: none;" title="2017-07-14 18_04_27-Oracle Compute Cloud Service - Instances (Instances)" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-18_04_27-Oracle-Compute-Cloud-Service-Instances-Instances_thumb.png?resize=518%2C110&#038;ssl=1" alt="2017-07-14 18_04_27-Oracle Compute Cloud Service - Instances (Instances)" border="0" data-recalc-dims="1" /></a></p> <p>If it all goes too fast you can press the little clock on the right side of you screen to get the ”Operations History”:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-18_04_35-Oracle-Compute-Cloud-Service-Instances-Instances.png?ssl=1"><img style="display: inline; background-image: none;" title="2017-07-14 18_04_35-Oracle Compute Cloud Service - Instances (Instances)" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-18_04_35-Oracle-Compute-Cloud-Service-Instances-Instances_thumb.png?resize=464%2C391&#038;ssl=1" alt="2017-07-14 18_04_35-Oracle Compute Cloud Service - Instances (Instances)" border="0" data-recalc-dims="1" /></a></p> <p>On the “Orchestrations” tab you can follow the status of the instance creation steps:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-18_06_45-Oracle-Compute-Cloud-Service-Orchestrations.png?ssl=1"><img style="display: inline; background-image: none;" title="2017-07-14 18_06_45-Oracle Compute Cloud Service - Orchestrations" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-18_06_45-Oracle-Compute-Cloud-Service-Orchestrations_thumb.png?resize=648%2C481&#038;ssl=1" alt="2017-07-14 18_06_45-Oracle Compute Cloud Service - Orchestrations" border="0" data-recalc-dims="1" /></a></p> <p>Once they have the status ready you will find a running instance on the instances tab:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-18_09_21-Oracle-Compute-Cloud-Service-Instances-Instances.png?ssl=1"><img style="display: inline; background-image: none;" title="2017-07-14 18_09_21-Oracle Compute Cloud Service - Instances (Instances)" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-18_09_21-Oracle-Compute-Cloud-Service-Instances-Instances_thumb.png?resize=702%2C292&#038;ssl=1" alt="2017-07-14 18_09_21-Oracle Compute Cloud Service - Instances (Instances)" border="0" data-recalc-dims="1" /></a></p> <p>Then you can connect to the instance and do with it whatever you want. In the GUI you can use the “hamburger” menu on the right to view the details of the instance, and for instance stop it:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-18_14_22-Oracle-Compute-Cloud-Service-Instance-Details-Overview.png?ssl=1"><img style="display: inline; background-image: none;" title="2017-07-14 18_14_22-Oracle Compute Cloud Service - Instance Details (Overview)" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-14-18_14_22-Oracle-Compute-Cloud-Service-Instance-Details-Overview_thumb.png?resize=702%2C127&#038;ssl=1" alt="2017-07-14 18_14_22-Oracle Compute Cloud Service - Instance Details (Overview)" border="0" data-recalc-dims="1" /></a></p> <p>Sometimes I got the error below, but found that waiting a few minutes before repeating the action it sequentially succeeded:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-17-18_01_32-.png?ssl=1"><img style="display: inline; background-image: none;" title="2017-07-17 18_01_32-" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-17-18_01_32-_thumb.png?resize=511%2C106&#038;ssl=1" alt="2017-07-17 18_01_32-" border="0" data-recalc-dims="1" /></a></p> <p>A nice feature of the Oracle Cloud is that you can capture screenshots of the console output, just as if you were looking at a monitor:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-17-18_46_08-Oracle-Compute-Cloud-Service-Instance-Details-Screen-Captures.png?ssl=1"><img style="display: inline; background-image: none;" title="2017-07-17 18_46_08-Oracle Compute Cloud Service - Instance Details (Screen Captures)" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-17-18_46_08-Oracle-Compute-Cloud-Service-Instance-Details-Screen-Captures_thumb.png?resize=702%2C253&#038;ssl=1" alt="2017-07-17 18_46_08-Oracle Compute Cloud Service - Instance Details (Screen Captures)" border="0" data-recalc-dims="1" /></a></p> <p>And to view the Console Log (albeit truncated to a certain size) if you added the highlighted text to GRUB_CMDLINE_LINUX in /etc/default/grub:</p> <pre style="padding: 1em; border: 1px solid #dddddd; color: #000000; text-transform: none; line-height: 1.3em; text-indent: 0px; letter-spacing: normal; font-family: monospace, courier; font-size: 14px; font-style: normal; font-weight: normal; word-spacing: 0px; white-space: pre-wrap; orphans: 2; widows: 2; background-color: #f9f9f9; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">[ec2-user@d3c0d7 ~]$ cat /etc/default/grub GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=ol/root rd.lvm.lv=ol/swap rhgb quiet net.ifnames=0 <span style="background-color: #ffff00;">console=ttyS0</span>" GRUB_DISABLE_RECOVERY="true"</pre> <p>If you didn’t you will probably see something like:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-17-18_46_28-Oracle-Compute-Cloud-Service-Instance-Details-Logs.png?ssl=1"><img style="display: inline; background-image: none;" title="2017-07-17 18_46_28-Oracle Compute Cloud Service - Instance Details (Logs)" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-17-18_46_28-Oracle-Compute-Cloud-Service-Instance-Details-Logs_thumb.png?resize=702%2C167&#038;ssl=1" alt="2017-07-17 18_46_28-Oracle Compute Cloud Service - Instance Details (Logs)" border="0" data-recalc-dims="1" /></a></p> <p>If you did you will see something like:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-17-19_01_38-Oracle-Compute-Cloud-Service-Instance-Details-Logs.png?ssl=1"><img style="display: inline; background-image: none;" title="2017-07-17 19_01_38-Oracle Compute Cloud Service - Instance Details (Logs)" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-17-19_01_38-Oracle-Compute-Cloud-Service-Instance-Details-Logs_thumb.png?resize=702%2C232&#038;ssl=1" alt="2017-07-17 19_01_38-Oracle Compute Cloud Service - Instance Details (Logs)" border="0" data-recalc-dims="1" /></a></p> <p>I hope this helps building your own Linux 7 Cloud Images.</p> <p>The post <a rel="nofollow" href="https://technology.amis.nl/2017/07/24/oracle-compute-cloud-uploading-image-part-two-linux-7/">Oracle Compute Cloud &#8211; Uploading My Image &#8211; Part Two &#8211; Linux 7</a> appeared first on <a rel="nofollow" href="https://technology.amis.nl">AMIS Oracle and Java Blog</a>.</p> Patrick Roozen https://technology.amis.nl/?p=45458 Mon Jul 24 2017 15:20:50 GMT-0400 (EDT) New Video on Latches http://hemantoracledba.blogspot.com/2017/07/new-video-on-latches.html <div dir="ltr" style="text-align: left;" trbidi="on">I have published a new YouTube <a href="https://youtu.be/l5U9MsprmFg" target="_blank">Video on Latches</a> in Oracle.<br />.<br />.<br />.<br /><br /><br /></div> Hemant K Chitale tag:blogger.com,1999:blog-1931548025515710472.post-3111844643746587359 Mon Jul 24 2017 11:13:00 GMT-0400 (EDT) Modeling JSON in Oracle Database Tables http://www.thatjeffsmith.com/archive/2017/07/modeling-json-in-oracle-database-tables/ <p>Having an extra bit bucket in your tables is pretty easy now in Oracle Database 12c and higher. We offer native JSON support <a href="https://docs.oracle.com/database/122/ADJSN/creating-a-table-with-a-json-column.htm#ADJSN-GUID-E6CC0DCF-3D72-41EF-ACA4-B3BF54EE3CA0" target="_blank">[JSON DOCS]</a> &#8211; you can have a free form text column and store anything you want in it. </p> <p>AND, we pretty much give you the full power of the SQL interface to those bit bucket items &#8211; pretty neat I think.</p> <p>I&#8217;m still big fan of the relational paradigm, and I think data modeling is ALWAYS key to performance and flexbility for your database apps. So, how would one go about taking advantage of this in your Oracle SQL Developer Data Modeler designs? </p> <h3>CONSTRAINT XYZ123 CHECK (bit_bucket IS JSON)</h3> <p>That&#8217;s all you need &#8211; just add a column level check constraint.</p> <p>Here&#8217;s how to do that in the modeler.</p> <p>First off, build your table. Then you&#8217;re going to need to decide if you want to store your JSON in a VARCHAR2, CLOB, or BLOB. I&#8217;m going with CLOB because I&#8217;m not sure how big my bit bucket is going to get, and I prefer them to BLOBs. </p> <div id="attachment_6259" style="width: 1034px" class="wp-caption aligncenter"><a href="http://www.thatjeffsmith.com/wp-content/uploads/2017/07/check-json1.png"><img src="http://www.thatjeffsmith.com/wp-content/uploads/2017/07/check-json1.png" alt="" width="1024" height="613" class="size-full wp-image-6259" /></a><p class="wp-caption-text">I went with CLOB, but you use what you want to use.</p></div> <p>That will bring up THIS dialog:</p> <div id="attachment_6260" style="width: 790px" class="wp-caption aligncenter"><a href="http://www.thatjeffsmith.com/wp-content/uploads/2017/07/check-json2.png"><img src="http://www.thatjeffsmith.com/wp-content/uploads/2017/07/check-json2.png" alt="" width="780" height="660" class="size-full wp-image-6260" /></a><p class="wp-caption-text">Give your constraint a GOOD name, and then click the CHECK constraint button.</p></div> <p>And now we get to input our CHECK constraint text:</p> <div id="attachment_6261" style="width: 875px" class="wp-caption aligncenter"><a href="http://www.thatjeffsmith.com/wp-content/uploads/2017/07/check-json3.png"><img src="http://www.thatjeffsmith.com/wp-content/uploads/2017/07/check-json3.png" alt="" width="865" height="491" class="size-full wp-image-6261" /></a><p class="wp-caption-text">You don&#8217;t have to open the Edit Constraint text dialog, you can type it directly in the Constraint window if you&#8217;d prefer.</p></div> <p>Previewing our DDL shows this:</p> <div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="sql"><pre class="de1"><span class="kw1">CREATE</span> <span class="kw1">TABLE</span> identity_example <span class="br0">&#40;</span> id <span class="kw1">INTEGER</span> GENERATED <span class="kw1">BY</span> <span class="kw1">DEFAULT</span> <span class="kw1">AS</span> <span class="kw1">IDENTITY</span> <span class="br0">&#40;</span> <span class="kw1">START</span> <span class="kw1">WITH</span> <span class="nu0">1</span> NOCACHE <span class="kw1">ORDER</span> <span class="br0">&#41;</span> <span class="kw1">NOT</span> <span class="kw1">NULL</span><span class="sy0">,</span> text <span class="kw1">CLOB</span><span class="sy0">,</span> <span class="st0">&quot;date&quot;</span> <span class="kw1">DATE</span> <span class="br0">&#41;</span> LOGGING; &nbsp; <span class="kw1">ALTER</span> <span class="kw1">TABLE</span> identity_example <span class="kw1">ADD</span> <span class="kw1">CONSTRAINT</span> text_is_json <span class="kw1">CHECK</span> <span class="br0">&#40;</span> text <span class="kw1">IS</span> JSON <span class="br0">&#41;</span>; &nbsp; <span class="kw1">ALTER</span> <span class="kw1">TABLE</span> identity_example <span class="kw1">ADD</span> <span class="kw1">CONSTRAINT</span> identity_example_pk <span class="kw1">PRIMARY</span> <span class="kw1">KEY</span> <span class="br0">&#40;</span> id <span class="br0">&#41;</span>;</pre></div></div></div></div></div></div></div> <p><a href="http://www.thatjeffsmith.com/archive/2014/01/defining-12c-identity-columns-in-oracle-sql-developer-data-modeler/" target="_blank">Wondering about the IDENTITY clause, and how to model that? </a></p> <h3>Make It So.</h3> <p>So I&#8217;m going to copy and paste that DDL to my SQL Developer worksheet window and run it. Table IDENTITY_EXAMPLE created. Table IDENTITY_EXAMPLE altered. Table IDENTITY_EXAMPLE altered&#8230;yada, yada, yada.</p> <p>Now let&#8217;s go shove some data in.</p> <div id="attachment_6262" style="width: 629px" class="wp-caption aligncenter"><a href="http://www.thatjeffsmith.com/wp-content/uploads/2017/07/check-json4.png"><img src="http://www.thatjeffsmith.com/wp-content/uploads/2017/07/check-json4.png" alt="" width="619" height="659" class="size-full wp-image-6262" /></a><p class="wp-caption-text">The CHECK constraint is working, sweet.</p></div> <p>Now let&#8217;s go query the thing.</p> <div id="attachment_6263" style="width: 700px" class="wp-caption aligncenter"><a href="http://www.thatjeffsmith.com/wp-content/uploads/2017/07/check-json5.png"><img src="http://www.thatjeffsmith.com/wp-content/uploads/2017/07/check-json5.png" alt="" width="690" height="173" class="size-full wp-image-6263" /></a><p class="wp-caption-text">It gets MUCH cooler than this &#8211; go check out the Data Guide feature.</p></div> <!-- Easy AdSense Unfiltered [count: 3 is not less than 3] --> thatjeffsmith http://www.thatjeffsmith.com/?p=6258 Mon Jul 24 2017 10:34:56 GMT-0400 (EDT) Fast Now, Fast Later https://jonathanlewis.wordpress.com/2017/07/24/fast-now-fast-later/ <p><i>The following is the text of an article I published in the UKOUG magazine several years ago (2010), but I came across it recently while writing up some notes for a presentation and thought it would be worth repeating here.</i></p> <h3>Fast Now, Fast Later</h3> <p>The title of this piece came from a presentation by Cary Millsap and captures an important point about trouble-shooting as a very memorable aphorism. Your solution to a problem may look good for you right now but is it a solution that will still be appropriate when the database has grown in volume and has more users.</p> <p>I was actually prompted to write this article by a question on the OTN database forum that demonstrated the need for the basic combination of problem solving and forward planning. Someone had a problem with a fairly sudden change in performance of his system from November to December, and he had some samples from trace files and Statspack of a particular query that demonstrated the problem.</p> <p>The query was very simple:</p> <pre class="brush: plain; title: ; notranslate"> select * from tph where pol_num = :b0 order by pm_dt, snum </pre> <p>When the query was operating fast enough the trace file from a sample run showed the following (edited) tkprof output, with an the optimizer taking advantage of the primary key of <em><strong>(pol_num, pm_dt, snum)</strong></em> on table <em><strong>TPH</strong></em> to avoid a sort for the order by clause. (Note that the heading on the plan is <em>“Row Source Operation”</em> – which means it’s the execution plan that really was used)</p> <pre class="brush: plain; title: ; notranslate"> call count cpu elapsed disk query current rows --------------------------------------------------------- Parse 1 0.01 0.13 0 106 0 0 Execute 1 0.03 0.03 0 0 0 0 Fetch 4 0.01 0.22 46 49 0 43 --------------------------------------------------------- total 6 0.06 0.39 46 155 0 43 Rows Row Source Operation ---- -------------------- 43 TABLE ACCESS BY INDEX ROWID TPH (cr=49 pr=46 pw=0 time=226115 us) 43 INDEX RANGE SCAN TPH_PK (cr=6 pr=3 pw=0 time=20079 us)(object id 152978) Elapsed times include waiting on following events: Event waited on Times Max. Wait Total Waited Waited ----------------------------------------------------------- db file sequential read 46 0.01 0.21 </pre> <p>When the query was running less efficiently the change in the trace didn’t immediately suggest any fundamental problems:</p> <pre class="brush: plain; title: ; notranslate"> call count cpu elapsed disk query current rows --------------------------------------------------------- Parse 1 0.00 0.00 0 51 0 0 Execute 1 0.01 0.01 0 0 0 0 Fetch 4 0.00 0.59 47 51 0 45 --------------------------------------------------------- total 6 0.01 0.61 47 102 0 45 Rows Row Source Operation ---- -------------------- 45 TABLE ACCESS BY INDEX ROWID TPH (cr=51 pr=47 pw=0 time=593441 us) 45 INDEX RANGE SCAN TPH_PK (cr=6 pr=2 pw=0 time=33470 us)(object id 152978) Elapsed times include waiting on following events: Event waited on Times Max. Wait Total Waited Waited ----------------------------------------------------------- db file sequential read 47 0.03 0.58 </pre> <p>The plan is the same, the number of rows returned is roughly the same, and the number of disc reads and buffer gets has hardly changed. Clearly the overall change in performance comes from the slower average disk read times (a total of 0.21 seconds with a maximum of one hundredth of a second, compared to a total 0.58 seconds with a maximum of 3 hundredths), but why has the disk I/O time changed?</p> <p>The figures give us a couple of preliminary ideas. An average read time of 4.5 milliseconds ( 0.21 seconds / 46 reads) is pretty good for a “small” random read of a reasonably loaded disc subject to a degree of concurrent access <em>[ed: bearing in mind this was 2010]</em>, so the waits for <em>“db file sequential read”</em> in the first tkprof output are probably getting some help from a cache somewhere – possibly a SAN cache at the end of a fibre link or maybe from a local file system buffer (we might get a better idea if we could see the complete list of individual read times).</p> <p>In the second case an average of 12.3 milliseconds ( 0.58 seconds / 45 reads) looks much more like a reasonable amount of genuine disc I/O is taking place – and the maximum of 30 milliseconds suggests that the disc(s) in question are subject to an undesirable level of concurrent access: our session is spending some of its time in a disk queue. Again, it would be nice to see the wait times for all the reads, but at this point it’s not really necessary.</p> <p>There are couple more clues about what’s going on – one is the text of the query itself (and I’ll be coming back to that later) and the other is in the detail of the disk I/Os. If you check the <em>“Row Source Operation”</em> details you’ll see that in the first case the sample query selected 43 rows from the table and requested 43 (46 – 3) physical reads (<em><strong>pr</strong></em>) of the table to do so. In the second case it was 45 rows and 45 (47 – 2) physical reads. Is this simply a case of the same query needing a little more data and having to do a little more work as time passes?</p> <p>So now we come to the <em><strong>Statspack</strong></em> data. Based on my observations (or guesses) about the nature of the query and the work going on, I asked if we could see some summary information for a couple of comparative intervals, and also to see if this particular query appeared in the <strong><em>“SQL ordered by reads”</em></strong> section of the Statspack reports. Here are the results, first for a snapshot taken in October:</p> <pre class="brush: plain; title: ; notranslate"> Top 5 Timed Events Avg %Total ~~~~~~~~~~~~~~~~~~ wait Call Event Waits Time (s) (ms) Time ----------------------------------------- ------------ ----------- ------ ------ db file sequential read 3,816,939 58,549 15 79.4 CPU time 7,789 10.6 db file parallel write 371,865 2,005 5 2.7 log file parallel write 75,554 1,552 21 2.1 log file sync 17,198 1,228 71 1.7 CPU Elapsd Old Physical Reads Executions Reads per Exec %Total Time (s) Time (s) Hash Value --------------- ------------ -------------- ------ -------- --------- ---------- 775,166 43,228 17.9 24.3 212.58 12449.98 1505833981 Module: javaw.exe SELECT * FROM TPH WHERE POL_NUM = :B1 ORDER BY PM_DT ,SNUM FOR UPDATE NOWAIT} </pre> <p>You might notice that the critical query is actually a <em>‘select for update’</em> rather than the simple select that we had originally been told about; this doesn’t affect the execution plan, but is going to have some significance as far as undo and redo are concerned.</p> <p>Now look at the corresponding figures for an interval in December:</p> <pre class="brush: plain; title: ; notranslate"> Top 5 Timed Events Avg %Total ~~~~~~~~~~~~~~~~~~ wait Call Event Waits Time (s) (ms) Time ----------------------------------------- ------------ ----------- ------ ------ db file sequential read 7,000,428 92,970 13 89.8 CPU time 6,780 6.5 db file parallel write 549,286 1,450 3 1.4 db file scattered read 84,127 720 9 .7 log file parallel write 41,197 439 11 .4 CPU Elapsd Old Physical Reads Executions Reads per Exec %Total Time (s) Time (s) Hash Value --------------- ------------ -------------- ------ -------- --------- ---------- 2,444,437 43,363 56.4 25.2 221.31 23376.07 1505833981 Module: javaw.exe SELECT * FROM TPH WHERE POL_NUM = :B1 ORDER BY PM_DT ,SNUM FOR UPDATE NOWAIT </pre> <p>You’ll see in both cases that a huge fraction of the total database time is spent in single block reads (the <em>“db file sequential read”</em> time), but in December the number of reads has gone up by about 3.2 million. You can also see that about 1.7 million of the “extra” reads could be attributed to the critical query even though the number of executions of that query has hardly changed. The average number of reads per execution has gone up from 18 to 56. (I did ask if I could see the section of Statspack titled “SQL ordered by Executions” as this includes the average number of rows per execution and it would have been nice to know whether this average had gone up just a little bit, or whether it had gone up in line with the average reads per execution. Unfortunately the request was ignored, so I am going to proceed as if the change in the average result set was small.)</p> <p>This, perhaps, tells us exactly what the problem is (and even if it doesn’t, the figures are symptomatic of one of the common examples of non-scalable queries).</p> <p>Look at the query again – are we reporting all the rows for a “policy number”, ordered by “payment date”. If so, the number of payments recorded is bound to increase with time, and inevitably there will be lots of payments for policies belonging to other people between each pair of payments I make on my policy – and that would put each of my payments in a different table block (if I use a normal heap table).</p> <p>Initially the payments table may be sufficiently small that a significant fraction of it stays in Oracle’s data cache or even in the file-system or SAN cache; but as time passes and the table grows the probability of me finding most of my blocks cached decreases – moreover, as time passes, I want increasing numbers of blocks which means that as I read my blocks I’m more likely to knock your blocks out of the cache. Given the constantly increasing numbers of competing reads, it is also no surprise that eventually the average single block read time also increases.</p> <p>In scenarios like this it is inevitable that performance will degrade over time; in fact it is reasonably likely that the performance profile will degrade slowly to start with and then show an increasingly dramatic plunge. The only question really is how much damage limitation you can do.</p> <p>One strategy, of course, is to increase the memory available for the critical object(s). This may mean assigning the table to a generously sized KEEP cache. (The cache need not be the same size as the table to improve things, but the bigger the better – for this query, at least). But such a strategy is only postponing the inevitable – you really need to find an approach which is less susceptible to the passage of time.</p> <p>In this case, there are a few options to consider. First – note that we are selecting all the rows for a policy: do we really need to, or could we select the rows within a given date range, thus setting an upper limit on the average volume of data we need to acquire for any one policy. If we do that, we may want to think about strategies for summarizing and deleting older data, or using partitioning to isolate older data in separate segments.</p> <p>If we can’t deal with the problem by changing the code (and, in this case, the apparent business requirement) can we avoid the need to visit so many data blocks for single policy. There are two obvious options to consider here – we could create the table as an <em>“index cluster”</em> clustered on the policy number; in this way we pay a penalty each time we insert a new row for a policy because we have to find the correct block in the cluster but when we run a query against that policy we will only need to read one or two blocks (probably) to get all the data. Alternatively we could consider setting the table up as an index-organized table (IOT) – again we do more work inserting data into the correct leaf block in the index but again we reap the benefit as we query the data because all the rows we want are in the same two or three leaf blocks (and stored in the order we want them).</p> <p>Of course we are still subject to the same basic problem of the result set increasing in size as time passes, but at least we have managed to reduce (dramatically) the number of blocks we have to visit and the rate of growth of the number of blocks per query, thereby improving the scalability of the queries significantly.</p> <p>Introducing new structures to an existing system is difficult, of course, and we may have to work out variations on this theme (like creating an index that includes all the table columns if we can’t switch to an IOT!). The key point is this, though: sometimes we can look at our data and the critical queries and recognize that the volume of data we have to process (even if we don’t return it, as we did in this example) is always going to increase over time, then we need to consider ways of minimizing the volume of data, or improving the packing of data so that the work we do doesn’t change (much) over time. Don’t just think ‘fast now’, think ‘will it still be fast later’.</p> <p>&nbsp;</p><br /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonathanlewis.wordpress.com/17359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonathanlewis.wordpress.com/17359/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=jonathanlewis.wordpress.com&#038;blog=491988&#038;post=17359&#038;subd=jonathanlewis&#038;ref=&#038;feed=1" width="1" height="1" /> Jonathan Lewis http://jonathanlewis.wordpress.com/?p=17359 Mon Jul 24 2017 08:39:33 GMT-0400 (EDT) Integrating Vue.js in ADF Faces 12c Web Application – using HTML5 style Document Import https://technology.amis.nl/2017/07/24/integrating-vue-js-in-adf-faces-12c-web-application-using-html5-style-document-import/ <p>Vue.js is a popular framework for developing rich client web applications, leveraging browsers for all they are worth. Vue.js has attracted a large number of developers that together have produced a large number of quite interesting reusable components. ADF Faces is itself a quite mature framework for the development of rich web applications. It was born over 10 years ago. It has evolved over the years and adopted quite a few browser enhancements over the years. However, ADF Faces is still &#8211; and will stay &#8211; a server side framework that provides only piecemeal support for HTML5 APIs. When developing in ADF Faces, it feels a bit as if your missing out on all those rapid, cool, buzzing developments that take place on the client side.</p> <p>Oracle strongly recommends you to stay inside the boundaries of the framework. To use JavaScript only sparingly. To not mess with the DOM as that may confuse Partial Page Rendering, one of the cornerstones of ADF Faces 11g and 12c. And while I heed these recommendations and warnings, I do not want to miss out on all the goodness that is available to me. </p> <p>So we tread carefully. Follow the guidelines for doing JavaScript things in ADF Faces. Try to keep the worlds of ADF Faces en Vue.js apart except for when they need to come into contact.</p> <p>In this article, I will discuss how the simplest of Vue.js application code can be integrated in a ‘normal’ ADF Faces web application. Nothing fancy yet, no interaction between ADF Faces client components and Vue.js, no exchange of events or even data. Just a hybrid page that contains ADF Faces content (largely server side rendered) and Vue.js content (HTML based and heavily post processed in JavaScript as is normally the case with Vue.js).</p> <p>The steps we have to go through:</p> <ol> <li>Create new ADF Faces Web Application with main page</li> <li>Import Vue.js JavaScript library into ADF Faces web application main page</li> <li>Create HTML document with Vue.js application content &#8211; HTML tags, custom tags, data bound attributes; potentially import 3rd party Vue.js components</li> <li>Create JavaScript module with initialization of Vue.js application content (function VueInit() &#8211; data structure, methods, custom components, … (see: <a title="https://vuejs.org/v2/guide/instance.html" href="https://vuejs.org/v2/guide/instance.html">https://vuejs.org/v2/guide/instance.html</a>)</li> <li>Create a container in the ADF Faces main page to load the Vue.js content into</li> <li>Import HTML document with Vue.js content into browser and add to main page DOM</li> <li>Import custom Vue.js JavaScript module into main page; upon ADF Faces page load event, call VueInit()</li> </ol> <p>When these steps are complete, the application can be run. The browser will bring up a page with ADF Faces content as well as Vue.js content. A first step towards a truly hybrid application with mutually integrated components. Or at least some rich Vue.js components enriching the ADF Faces application. Such as the time picker (<a title="https://www.npmjs.com/package/vue-clock-picker" href="https://www.npmjs.com/package/vue-clock-picker">https://www.npmjs.com/package/vue-clock-picker</a>), the Google Charts integrator (<a title="https://github.com/haydenbbickerton/vue-charts" href="https://github.com/haydenbbickerton/vue-charts">https://github.com/haydenbbickerton/vue-charts</a>) and many more.</p> <p>The source code described in this article is in GitHub: <a title="https://github.com/lucasjellema/ADFplusVueJS" href="https://github.com/lucasjellema/ADFplusVueJS">https://github.com/lucasjellema/ADFplusVueJS</a>.</p> <p>A brief overview of the steps and code is provided below. The biggest challenge probably was to get HTML into the ADF Faces page that could not be parsed by the ADF Faces framework (that does not allow the notation used by Vue.js such as <strong>:value=”expression”</strong> and <strong>@click=”function”</strong>. Using <em>link</em> for an HTML document is a workaround, followed by a little DOM manipulation. At this moment, this approach is only supported in Chrome browser. For Firefox there is a polyfill available and perhaps an approach based on XMLHttpRequest is viable (see <a href="https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/HTML_in_XMLHttpRequest" target="_blank">this article</a>).</p> <p>&nbsp;</p> <h3>Create new ADF Faces Web Application with main page</h3> <p>Use the wizard to create the new application. Then create a new page: main.jsf. Also create a JavaScript module: main.js and import it into the main page:</p> <blockquote> <p>&lt;af:resource type=&#8221;javascript&#8221; source=&#8221;resources/js/main.js&#8221;/&gt;</p> </blockquote> <h3>Import Vue.js JavaScript library into ADF Faces web application main page</h3> <p>Add&nbsp; an af:resource tag that references the online resource https://unpkg.com/vue for the Vue.js 2 framework library.</p> <blockquote> <p>&lt;af:resource type=&#8221;javascript&#8221; source=&#8221;https://unpkg.com/vue&#8221;/&gt;</p> </blockquote> <h3>Create HTML document with Vue.js application content</h3> <p> Just create a new HTML document in the application &#8211; for example VueContent.html. Add some Vue.js specific content using data bound syntax with : and {{}} notation. Use a third party component &#8211; for example the 3D carousel: <a title="https://wlada.github.io/vue-carousel-3d/examples/" href="https://wlada.github.io/vue-carousel-3d/examples/">https://wlada.github.io/vue-carousel-3d/examples/</a>.</p> <p>The final HTML tags are in VueContent.html as is an import of the 3D carousel component (straight JavaScript reference). Some local custom components are defined in VueContent.js; that is also where the data is prepared that is leveraged in this document.</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-59.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-59.png?resize=464%2C341&#038;ssl=1" data-recalc-dims="1"></a></p> <p>&nbsp;</p> <h3>Create JavaScript module with initialization of Vue.js application content </h3> <p>Create JavaScript module VueContent.js with a function VueInit() that will do the Vue.js application initialization and set up data structure, methods, … (see: <a title="https://vuejs.org/v2/guide/instance.html" href="https://vuejs.org/v2/guide/instance.html">https://vuejs.org/v2/guide/instance.html</a>). </p> <p>In this library, local custom components are defined &#8211; such as app-menu, app-menu-list, update, updates-list, status-replies, post-reply &#8211; and third party components are registered &#8211; carousel-3d and slide.</p> <p>The VueInit() function does the familiar hard Vue.js work:</p> <p><pre class="brush: jscript; title: ; notranslate"> function initVue() { console.log(&quot;Initialize Vue in VueContent.js&quot;); new Vue({ el: '#app', data: { greeting: 'Welcome to your hybrid ADF and Vue.js app!', docsURL: 'http://vuejs.org/guide/', message: 'Hello Vue!', value:'Welcome to the tutorial &lt;small&gt;which is all about Vue.js&lt;/small&gt;', viewed:true, updates:updates, showReplyModal: false, slides: 7 }, methods: { humanizeURL: function (url) { return url .replace(/^https?:\/\//, '') .replace(/\/$/, '') } }, components: { 'carousel-3d': Carousel3d.Carousel3d, 'slide': Carousel3d.Slide } }) /* new Vue */ } </pre> </p> <h3>Create a container in the ADF Faces main page to load the Vue.js content into</h3> <p>The Vue.js content can be loaded in the ADF page into a DIV element. Such an element can&nbsp; best be created into an ADF Faces web page by using a af:panelGroupLayout with layout set to <em>vertical</em> (says Duncan Mills):</p> <blockquote> <p>&lt;af:panelGroupLayout id=&#8221;app&#8221; layout=&#8221;vertical&#8221;&gt;</p> </blockquote> <h3>Import HTML document with Vue.js content into browser and add to main page DOM</h3> <p>JSF 2 allows us to embed HTML in our JSF pages &#8211; XHTML and Facelet, jspx and jsff &#8211; although as it happens there are more than a few server side parser limitations that make this not so easy. Perhaps this is only for our own good: it forces us to strictly separate the (client side) HTML that Vue.js will work against and the server side files that are parsed and rendered by ADF Faces. We do need a link between these two of course: the document rendered in the browser from the JSF source needs to somehow import the HTML and JavaScript resources.</p> <p>The Vue.js content is in a separate HTML document called VueContent.html. To add the content of this document &#8211; or at least everything inside a DIV with id=”content” &#8211; to the main page, add a &lt;link&gt; element (as described in <a href="https://onextrapixel.com/html5-imports-embedding-an-html-file-inside-another-html-file/" target="_blank">this article</a> ) and have it refer to the HTML document. Also specify an onload listener to process the content after it has been loaded. Note: this event will fire before the page load event fires.</p> <blockquote> <p>&lt;link id=&#8221;VueContentImport&#8221; rel=&#8221;import&#8221; href=&#8221;VueContent.html&#8221; onload=&#8221;handleLoad(event)&#8221;&nbsp; onerror=&#8221;handleError(event)&#8221;/&gt;</p> </blockquote> <p>Implement the function handleLoad(event) in the main.js JavaScript module. Have it get hold of the just loaded document and deep clone it into the DOM, inside the DIV with the <em>app</em> id (the DIV rendered from the panelGroupLayout component).</p> <h3>Import custom Vue.js JavaScript module into main page and call upon Page Load Event</h3> <p>Import JavaScript module:</p> <blockquote> <p>&lt;af:resource type=&#8221;javascript&#8221; source=&#8221;resources/js/VueContent.js&#8221;/&gt;</p> </blockquote> <p>Add a clientListener component to execute function init() in main.js that will call VueInit() in VueContent.js :</p> <blockquote> <p>&lt;af:clientListener method=&#8221;init&#8221; type=&#8221;load&#8221;/&gt;</p> </blockquote> <p>In function init(), call VueInit() &#8211; the function that is loaded from VueContent.js &#8211; the JavaScript module that constitutes the Vue.js application together with VueContent.html. In VueInit() the real Vue.js initialization is performed and the data bound content inside DIV <em>app</em> is prepared.</p> <p>The overall set up and flow is depicted in this figure:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-60.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-60.png?resize=543%2C424&#038;ssl=1" data-recalc-dims="1"></a></p> <p>And the application looks like this in JDeveloper:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-61.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-61.png?resize=702%2C434&#038;ssl=1" data-recalc-dims="1"></a></p> <p>When running, this is what we see in the browser (note: only Chrome supports this code at the moment); the blue rectangle indicates the Vue.js content:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-62.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-62.png?resize=657%2C399&#038;ssl=1" data-recalc-dims="1"></a></p> <p>And at the bottom of the page, we see the 3D Carousel:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-63.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-63.png?resize=669%2C342&#038;ssl=1" data-recalc-dims="1"></a></p> <p>&nbsp;</p> <p>Next steps would have us exchange data and events between ADF Faces components and Vue.js content. But as stated at the beginning &#8211; we tread carefully, stick to the ADF framework as much as possible.</p> <h2>Resources</h2> <p>Vue 2 &#8211; Introduction Guide &#8211; <a title="https://vuejs.org/v2/guide/" href="https://vuejs.org/v2/guide/">https://vuejs.org/v2/guide/</a></p> <p>Vue Clock Picker component &#8211; <a href="https://github.com/DomonJi/vue-clock-picker/compare?expand=1">Compare · DomonJi/vue-clock-picker</a></p> <p>Google Charts plugin for Vue &#8211; <a href="http://www.vuescript.com/google-charts-plugin-vue-js/">Google Charts Plugin For Vue.js &#8211; Vue.js Script</a></p> <p>How to include HTML in HTML (W3 Schools) &#8211; <a title="https://www.w3schools.com/howto/howto_html_include.asp" href="https://www.w3schools.com/howto/howto_html_include.asp">https://www.w3schools.com/howto/howto_html_include.asp</a></p> <p>HTML Imports in Firefox &#8211; <a title="https://developer.mozilla.org/en-US/docs/Web/Web_Components/HTML_Imports" href="https://developer.mozilla.org/en-US/docs/Web/Web_Components/HTML_Imports">https://developer.mozilla.org/en-US/docs/Web/Web_Components/HTML_Imports</a></p> <p>Chrome &#8211; HTML5 Imports: Embedding an HTML File Inside Another HTML File &#8211; <a title="https://onextrapixel.com/html5-imports-embedding-an-html-file-inside-another-html-file/" href="https://onextrapixel.com/html5-imports-embedding-an-html-file-inside-another-html-file/">https://onextrapixel.com/html5-imports-embedding-an-html-file-inside-another-html-file/</a></p> <p>Me, Myself and JavaScript &#8211; Working with JavaScript in an ADF World, Duncan Mills, DOAG 2015 &#8211; <a title="https://www.doag.org/formes/pubfiles/7495804/docs/Konferenz/2015/vortraege/Development/2015-K-DEV-Duncan_Mills-Me,_Myself_and_JavaScript-Praesentation.pdf" href="https://www.doag.org/formes/pubfiles/7495804/docs/Konferenz/2015/vortraege/Development/2015-K-DEV-Duncan_Mills-Me,_Myself_and_JavaScript-Praesentation.pdf">https://www.doag.org/formes/pubfiles/7495804/docs/Konferenz/2015/vortraege/Development/2015-K-DEV-Duncan_Mills-Me,_Myself_and_JavaScript-Praesentation.pdf</a></p> <p>The post <a rel="nofollow" href="https://technology.amis.nl/2017/07/24/integrating-vue-js-in-adf-faces-12c-web-application-using-html5-style-document-import/">Integrating Vue.js in ADF Faces 12c Web Application &#8211; using HTML5 style Document Import</a> appeared first on <a rel="nofollow" href="https://technology.amis.nl">AMIS Oracle and Java Blog</a>.</p> Lucas Jellema https://technology.amis.nl/?p=45420 Mon Jul 24 2017 03:51:09 GMT-0400 (EDT) MongoDB Docker Oracle Linux Slim http://dbaontap.com/2017/07/24/mongodb-docker-oracle-linux-slim/ <p>Working for a consulting firm, I have the opportunity to occasionally explore technologies that don&#8217;t quite align with my focus area(s). I started looking at MongoDB, and over the last couple of weeks, I&#8217;ve found it to be quite fun. This post will focus on my intro to MongoDB and hopefully will result in a ...</p> <p>The post <a rel="nofollow" href="http://dbaontap.com/2017/07/24/mongodb-docker-oracle-linux-slim/">MongoDB Docker Oracle Linux Slim</a> appeared first on <a rel="nofollow" href="http://dbaontap.com">dbaonTap</a>.</p> DB http://dbaontap.com/?p=1327 Mon Jul 24 2017 01:49:04 GMT-0400 (EDT) Pivotal Cloud Foundry Isolation Segments Applications demo http://feedproxy.google.com/~r/blogspot/PEqWE/~3/dm1fZqkiduQ/pivotal-cloud-foundry-isolation.html PCF Isolation Segments Tile allows operators to isolate deployment workloads into dedicated resource pools called <em>isolation segments. </em>You can read more about how to install the Tile at the following location.<br /><br /><a href="https://docs.pivotal.io/pivotalcf/1-11/opsguide/installing-pcf-is.html">https://docs.pivotal.io/pivotalcf/1-11/opsguide/installing-pcf-is.html</a><br /><br />In this demo I will show how you can configure your ORGS/spaces to use an isolation segment and then finally show that it is indeed using the isolated Diego Cells assigned to the segment tile at install time.<br /><br />1. Determine the isolation segment name as per the Ops Manager title<br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-Mq4_XAYZ4wc/WXV88O5lFHI/AAAAAAAAA9c/DwciolOODvwNBLelUbW3HVEht6wFbuX2wCLcBGAs/s1600/Screen%2BShot%2B2017-07-24%2Bat%2B2.00.04%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="691" data-original-width="1600" height="137" src="https://1.bp.blogspot.com/-Mq4_XAYZ4wc/WXV88O5lFHI/AAAAAAAAA9c/DwciolOODvwNBLelUbW3HVEht6wFbuX2wCLcBGAs/s320/Screen%2BShot%2B2017-07-24%2Bat%2B2.00.04%2BPM.png" width="320" /></a></div><br /><br />2. Ensure you have CF CLI version as 6.26 or higher as shown below<br /><br /><span style="color: #3d85c6;">pasapicella@pas-macbook:~$ cf --version</span><br /><span style="color: #3d85c6;">cf version 6.28.0+9e024bdbd.2017-06-27</span><br /><br />3. First, you need to register an Isolation Segment with the cloud controller.<br /><br />Note: you will need a prividledged user such as admin to perform this task<br /><br /><span style="color: #3d85c6;">$ pasapicella@pas-macbook:~$ cf create-isolation-segment segment1</span><br /><span style="color: #3d85c6;">Creating isolation segment segment1 as admin...</span><br /><span style="color: #3d85c6;">OK</span><br /><br />4. After registering the Isolation Segment, you can associate it with an Org<br /><br /><span style="color: #3d85c6;">pasapicella@pas-macbook:~$ cf enable-org-isolation pas-org segment1</span><br /><span style="color: #3d85c6;">Enabling isolation segment segment1 for org pas-org as admin...</span><br /><span style="color: #3d85c6;">OK</span><br /><br />5. List isolation segments against targeted ORGS as follows<br /><br /><span style="color: #3d85c6;">pasapicella@pas-macbook:~$ cf isolation-segments</span><br /><span style="color: #3d85c6;">Getting isolation segments as admin...</span><br /><span style="color: #3d85c6;">OK</span><br /><span style="color: #3d85c6;"><br /></span><span style="color: #3d85c6;">name &nbsp; &nbsp; &nbsp; orgs</span><br /><span style="color: #3d85c6;">shared</span><br /><span style="color: #3d85c6;">segment1 &nbsp; pas-org</span><br /><div><br /></div><div><div>6. After associating an Isolation Segments with an Org, you then set it on a Space</div><div><br /></div><div>- First target the ORG you wish to use</div><div><br /></div><div><span style="color: #3d85c6;">pasapicella@pas-macbook:~$ cf target -o pas-org</span></div><div><span style="color: #3d85c6;">api endpoint: &nbsp; https://api.yyyy.pcfdemo.yyy</span></div><div><span style="color: #3d85c6;">api version: &nbsp; &nbsp;2.82.0</span></div><div><span style="color: #3d85c6;">user: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; admin</span></div><div><span style="color: #3d85c6;">org: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;pas-org</span></div><div><span style="color: #3d85c6;">No space targeted, use 'cf target -s SPACE'</span></div><div><br /></div><div>- Now set the isolation segment on your desired space</div><div><br /></div><div><span style="color: #3d85c6;">pasapicella@pas-macbook:~$ cf set-space-isolation-segment isolation-segment-space segment1</span></div><div><span style="color: #3d85c6;">Updating isolation segment of space isolation-segment-space in org pas-org as admin...</span></div><div><span style="color: #3d85c6;">OK</span></div><div><br /></div><div>In order to move running applications to this isolation segment, they must be restarted.</div><div><br /></div><div>7. Log in as a user of the ORG/SPACE now rather then ad admin user. We will be using a</div><div>non privileged user now to push our app who has access to the ORG/Space we targeted</div><div>above. Below just shows we have switched to a different user here.</div><div><br /></div><div><span style="color: #3d85c6;">pasapicella@pas-macbook:~$ cf target</span></div><div><span style="color: #3d85c6;">api endpoint: &nbsp; https://api.yyyy.pcfdemo.yyy</span></div><div><span style="color: #3d85c6;">api version: &nbsp; &nbsp;2.82.0</span></div><div><span style="color: #3d85c6;">user: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pas</span></div><div><span style="color: #3d85c6;">org: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;pas-org</span></div><div><span style="color: #3d85c6;">space: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;isolation-segment-space</span></div></div><div><br /></div><div>8. Push an application to the space "<b>isolation-segment-space</b>"</div><div><br /></div><div><span style="color: #3d85c6;">pasapicella@pas-macbook:~/piv-projects/PivotalSpringBootJPA$ cf push -f manifest-inmemory-db.yml</span></div><div><span style="color: #3d85c6;">Using manifest file manifest-inmemory-db.yml</span></div><div><span style="color: #3d85c6;"><br /></span></div><div><span style="color: #3d85c6;">Creating app pas-albums in org pas-org / space isolation-segment-space as pas...</span></div><div><span style="color: #3d85c6;">OK</span></div><div><span style="color: #3d85c6;"><br /></span></div><div><span style="color: #3d85c6;">....</span></div><div><span style="color: #3d85c6;"><br /></span></div><div><div><span style="color: #3d85c6;">0 of 1 instances running, 1 starting</span></div><div><span style="color: #3d85c6;">0 of 1 instances running, 1 starting</span></div><div><span style="color: #3d85c6;">1 of 1 instances running</span></div><div><span style="color: #3d85c6;"><br /></span></div><div><span style="color: #3d85c6;">App started</span></div><div><span style="color: #3d85c6;"><br /></span></div><div><span style="color: #3d85c6;"><br /></span></div><div><span style="color: #3d85c6;">OK</span></div></div><div><span style="color: #3d85c6;"><br /></span></div><div><span style="color: #3d85c6;">...</span></div><div><span style="color: #3d85c6;"><br /></span></div><div><div><span style="color: #3d85c6;"><br /></span></div><div><span style="color: #3d85c6;">&nbsp; &nbsp; &nbsp;state &nbsp; &nbsp; since &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;cpu &nbsp; &nbsp; &nbsp;memory &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; disk &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; details</span></div><div><span style="color: #3d85c6;">#0 &nbsp; running &nbsp; 2017-07-24 02:33:38 PM &nbsp; 225.3% &nbsp; 330.1M of 512M &nbsp; 162.8M of 1G</span></div></div><div><br /></div><div><div>9. Identify IP address of diego CELL the app is running in</div><div><br /></div><div><span style="color: #3d85c6;">pasapicella@pas-macbook:~/piv-projects/PivotalSpringBootJPA$ cf curl /v2/apps/$(cf app pas-albums --guid)/stats | jq '.[].stats.host'</span></div><div><span style="color: #3d85c6;">"10.10.10.71"</span></div></div><div><br /></div><div>With this information you can verify the IP address of the Diego Cells you have for the Isolation Segment as follows using Pivotal Ops Manager Tile tabs. From the images below it's clear 10.10.10.71 is a diego cell IP address of our isolation segment.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-3hfFDheeKws/WXWARdaKzZI/AAAAAAAAA9k/nc0d3jYcQcktMkFGNtj-78QE9vGK82SUQCLcBGAs/s1600/Screen%2BShot%2B2017-07-24%2Bat%2B3.01.54%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="613" data-original-width="1600" height="122" src="https://4.bp.blogspot.com/-3hfFDheeKws/WXWARdaKzZI/AAAAAAAAA9k/nc0d3jYcQcktMkFGNtj-78QE9vGK82SUQCLcBGAs/s320/Screen%2BShot%2B2017-07-24%2Bat%2B3.01.54%2BPM.png" width="320" /></a></div><div><br /></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-atZ_NA_sdMY/WXWBc4oUgvI/AAAAAAAAA9w/G0JEEKSxat8VgXoTSLXMsHSwMaHjS0e4wCLcBGAs/s1600/Screen%2BShot%2B2017-07-24%2Bat%2B2.41.31%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="363" data-original-width="1600" height="72" src="https://4.bp.blogspot.com/-atZ_NA_sdMY/WXWBc4oUgvI/AAAAAAAAA9w/G0JEEKSxat8VgXoTSLXMsHSwMaHjS0e4wCLcBGAs/s320/Screen%2BShot%2B2017-07-24%2Bat%2B2.41.31%2BPM.png" width="320" /></a></div><div><br /></div><div><br /></div><div><b>More Information</b></div><div><br /></div><div><a href="https://docs.pivotal.io/pivotalcf/1-11/opsguide/installing-pcf-is.html">https://docs.pivotal.io/pivotalcf/1-11/opsguide/installing-pcf-is.html</a></div><div><br /></div><div><a href="http://docs.pivotal.io/pivotalcf/1-10/adminguide/isolation-segments.html#create-an-is">http://docs.pivotal.io/pivotalcf/1-10/adminguide/isolation-segments.html#create-an-is</a></div><div class="blogger-post-footer">http://feeds.feedburner.com/TheBlasFromPas</div><img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/dm1fZqkiduQ" height="1" width="1" alt=""/> Pas Apicella tag:blogger.com,1999:blog-6527688743456205256.post-1413305180894026986 Mon Jul 24 2017 01:16:00 GMT-0400 (EDT) Get going with Node.js, npm and Vue.js 2 on Red Hat & Oracle Linux https://technology.amis.nl/2017/07/23/get-going-with-node-js-npm-and-vue-js-2-on-red-hat-oracle-linux/ <p>A quick and rough guide on getting going with Node, npm and Vue.js 2 on a Enterprise Linux platform (Oracle Linux based on RedHat Linux)</p> <p>Install Node.JS on a Oracle Enterprise Linux system:</p> <p>&nbsp;</p> <p>as root:</p> <blockquote> <p>curl &#8211;silent &#8211;location <a href="https://rpm.nodesource.com/setup_8.x">https://rpm.nodesource.com/setup_8.x</a> | bash &#8211;</p> </blockquote> <p>and:</p> <blockquote> <p>yum -y install nodejs</p> </blockquote> <p>(in order to disable the inaccessible proxy server that was setup for my <em>yum</em> environment I have to remove the line in /etc/yum.conf with proxy server)</p> <p>(see instruction at: <a href="https://nodejs.org/en/download/package-manager/)">https://nodejs.org/en/download/package-manager/)</a></p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-49.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-49.png?resize=330%2C352&#038;ssl=1" data-recalc-dims="1"></a></p> <p>&nbsp;</p> <p>For Vue.js</p> <p>See: <a href="https://vuejs.org/v2/guide/installation.html">https://vuejs.org/v2/guide/installation.html</a></p> <p>still as root:</p> <blockquote> <pre>npm install vue</pre> <pre><p>npm install --global vue-cli</p></pre> </blockquote> <p>&nbsp;</p> <p>Now again as the [normal]development user:</p> <p>create and run your first Vue.js application</p> <p>A single HTML document that loads Vue.js library and contains Vue.js “application” &#8211; and that can be opened like that in a local browser (no web server required)</p> <blockquote> <p>vue init simple my-first-app</p> </blockquote> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-50.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-50.png?resize=322%2C81&#038;ssl=1" data-recalc-dims="1"></a></p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-51.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-51.png?resize=393%2C111&#038;ssl=1" data-recalc-dims="1"></a></p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-52.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-52.png?resize=267%2C303&#038;ssl=1" data-recalc-dims="1"></a></p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-53.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-53.png?resize=353%2C452&#038;ssl=1" data-recalc-dims="1"></a></p> <p>&nbsp;</p> <p># create a new project using the &#8220;webpack&#8221; template</p> <blockquote> <p>vue init webpack my-second-app</p> </blockquote> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-54.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-54.png?resize=438%2C252&#038;ssl=1" data-recalc-dims="1"></a></p> <p>&nbsp;</p> <p># install dependencies and go!</p> <blockquote> <p>cd my-second-app</p> <p>npm install</p> <p>npm run dev</p> </blockquote> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-55.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-55.png?resize=446%2C232&#038;ssl=1" data-recalc-dims="1"></a></p> <p>Open the generated Vue.js application in the local browser &#8211; or in a remote one:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-56.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-56.png?resize=447%2C358&#038;ssl=1" data-recalc-dims="1"></a></p> <p>&nbsp;</p> <p>Optional &#8211; though recommended &#8211; is the installation of a nice code editor. One that is to my liking is Microsoft Visual Studio Code &#8211; free, light weight, available on all platforms. See for installation instructions: <a title="https://code.visualstudio.com/docs/setup/linux" href="https://code.visualstudio.com/docs/setup/linux">https://code.visualstudio.com/docs/setup/linux</a></p> <p>To turn the application &#8211; simplistic as it is &#8211; into a shippable, deployable application, we can use the build feature of webpack:</p> <blockquote> <p>npm run build</p> </blockquote> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-57.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-57.png?resize=440%2C427&#038;ssl=1" data-recalc-dims="1"></a></p> <p>The built resources are in the /dist folder of the project. These resources can be shipped and placed on any web server, such as nginx, Apache, Node.js and even WebLogic (co-located with Java EE web application). </p> <p>The build process can be configured through the file /build/webpack.prod.conf.js, for example to have the name of the application included in the name of the generated resources:</p> <p>&nbsp;</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-58.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-58.png?resize=647%2C245&#038;ssl=1" data-recalc-dims="1"></a></p> <p>The post <a rel="nofollow" href="https://technology.amis.nl/2017/07/23/get-going-with-node-js-npm-and-vue-js-2-on-red-hat-oracle-linux/">Get going with Node.js, npm and Vue.js 2 on Red Hat &amp; Oracle Linux</a> appeared first on <a rel="nofollow" href="https://technology.amis.nl">AMIS Oracle and Java Blog</a>.</p> Lucas Jellema https://technology.amis.nl/?p=45407 Sun Jul 23 2017 12:56:59 GMT-0400 (EDT) LEAP#325 Pimp My Boldport Club Spoolt http://blog.tardate.com/2017/07/leap325-pimp-my-boldportclub-spoolt.html <p>Building the latest Boldport Club project - “spoolt”, a solder dispenser. It actually works and now has a place on my workbench. It’s also a nice reminder and inspiration to consider how PCBs can be used as a structural element in design. Of course one essential feature it was missing was LEDs - so I’ve added those myself;-) As always, <a href="https://github.com/tardate/LittleArduinoProjects/tree/master/BoldportClub/spoolt">all notes, schematics and code are in the Little Electronics &amp; Arduino Projects repo on GitHub</a> Here’s a quick demo:</p> <iframe class="youtube-embed" src="https://www.youtube.com/embed/mSZUleERjIs" frameborder="0" allowfullscreen=""></iframe> http://blog.tardate.com/2017/07/leap325-pimp-my-boldportclub-spoolt.html Sun Jul 23 2017 04:03:24 GMT-0400 (EDT) Using Vue.JS Community Component in My Own Application https://technology.amis.nl/2017/07/23/using-vue-js-community-component-in-my-own-application/ <p>In a recent blog article, I fiddle around a little with Vue.JS &#8211; <a href="https://technology.amis.nl/2017/07/16/auto-suggest-with-html5-data-list-in-vue-js-2-application/" target="_blank" rel="noopener">Auto suggest with HTML5 Data List in Vue.js 2 application</a>. For me, it was a nice little exercise to get going with properties and events, the basics for creating a custom component. It was fun to do, easy to achieve some degree of success.</p> <p>Typing into a simple input field lists a number of suggestions &#8211; using the HTML5 data list component.</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-45.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-45.png?resize=629%2C358&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>At that moment, I was not yet aware of the wealth of reusable components available to Vue.js developers, for example at <a title="https://vuecomponents.com/" href="https://vuecomponents.com/">https://vuecomponents.com/</a>  and <a title="http://www.vuescript.com/" href="http://www.vuescript.com/">http://www.vuescript.com/</a>.</p> <p>I decided to try my hand at reusing just one of those components, expecting that to give me a good impression of what it is in general to reuse components. I stumbled across a nice little carousel component: <a title="https://wlada.github.io/vue-carousel-3d/" href="https://wlada.github.io/vue-carousel-3d/">https://wlada.github.io/vue-carousel-3d/</a> and thought that it might be nice to display the news items for the selected news source in a carousel. How hard can that be?</p> <p>(well, in many server side web development framework, integrating third party components actually can be quite hard. And I am not sure it is that simple in all client side frameworks either).</p> <p>The steps with integrating the Carousel in my Vue.js application turned out to be:</p> <p>1. Install the component into the application’s directory structure:</p> <blockquote><p>npm install -S vue-carousel-3d</p></blockquote> <p>This downloads a set of files into the node-modules directory child folder vue-carousel-3d.</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-46.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-46.png?resize=133%2C244&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>2. Import the component into the application</p> <p>In main.js add an import statement:</p> <blockquote><p>import Carousel3d from &#8216;vue-carousel-3d&#8217;;</p></blockquote> <p>To install the plugin &#8211; make it globally available throughout the application &#8211; add this line, also in main.js:</p> <blockquote><p>Vue.use(Carousel3d);</p></blockquote> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-47.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-47.png?resize=241%2C244&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>At this point, the carousel component is available and can be added in templates.</p> <p>3. To use the carousel, follow the instructions in its documentation: <a title="https://wlada.github.io/vue-carousel-3d/guide/" href="https://wlada.github.io/vue-carousel-3d/guide/">https://wlada.github.io/vue-carousel-3d/guide/</a></p> <p>In the Newslist component from the original sample application (based on <a href="https://medium.com/codingthesmartway-com-blog/vue-js-2-vue-resource-real-world-vue-application-with-external-api-access-c3de83f25c00" target="_blank" rel="noopener">this article</a>) I have introduced the carousel and slide components that have become available through the import of the carousel component:</p> <pre class="brush: xml; title: ; notranslate"> &lt;template&gt; &lt;div class=&quot;newslist&quot;&gt; &lt;carousel-3d controlsVisible=&quot;true&quot;&gt; &lt;slide :index=&quot;index&quot; v-for=&quot;(article,index) in articles&quot;&gt; &lt;div class=&quot;media-left&quot;&gt; &lt;a v-bind:href=&quot;article.url&quot; target=&quot;_blank&quot;&gt; &lt;img class=&quot;media-object&quot; v-bind:src=&quot;article.urlToImage&quot;&gt; &lt;/a&gt; &lt;/div&gt; &lt;div class=&quot;media-body&quot;&gt; &lt;h4 class=&quot;media-heading&quot;&gt;&lt;a v-bind:href=&quot;article.url&quot; target=&quot;_blank&quot;&gt;{{article.title}}&lt;/a&gt;&lt;/h4&gt; &lt;h5&gt;&lt;i&gt;by {{article.author}}&lt;/i&gt;&lt;/h5&gt; &lt;p&gt;{{article.description}}&lt;/p&gt; &lt;/div&gt; &lt;/slide&gt; &lt;/carousel-3d&gt; &lt;/div&gt; &lt;/template&gt; </pre> <p>Note: comparing with the code as it was before, only two lines were meaningfully changed &#8211; the ones with the carousel-3d tag and the slide tag.</p> <p>The result: news items displayed in a 3d carousel.</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-48.png?ssl=1"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-48.png?resize=692%2C374&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>The post <a rel="nofollow" href="https://technology.amis.nl/2017/07/23/using-vue-js-community-component-in-my-own-application/">Using Vue.JS Community Component in My Own Application</a> appeared first on <a rel="nofollow" href="https://technology.amis.nl">AMIS Oracle and Java Blog</a>.</p> Lucas Jellema https://technology.amis.nl/?p=45382 Sun Jul 23 2017 01:34:30 GMT-0400 (EDT) In Memoriam – 2 https://jonathanlewis.wordpress.com/2017/07/22/in-memoriam-2/ <p>This is the second of two items that my mother typed out more than 25 years ago. I had very mixed emotions when reading it but ultimately I felt that it was a reminder that, despite all the nasty incidents and stupid behaviour hyped up by the press and news outlets, people and organisations are generally kinder, gentler and more understanding than they were 60 years ago.</p> <p>This story is about the birth of my brother who was born with a genetic flaw now known as Trisomy 21 though formerly known as Down&#8217;s syndrome or (colloquially, and no longer acceptably) mongolism. It is the latter term that my mother uses as it was the common term at the time of birth and at the time she typed her story.</p> <h3 style="text-align:center;">A child is born.</h3> <h4 style="text-align:center;">The history written by Dorothy Kathleen Lewis (1925 &#8211; 2017) about the birth of her first son</h4> <p>My pregnancy was normal. The first indication I had that something was wrong was in the delivery room when the baby was born; there was <em>“oh”</em> and silence then whispers. I asked what was wrong but was told nothing. The baby was put in a cot and the doctor came into the room and then he was taken out. I had not seen the baby – just knew that it was a boy. Again when I asked I was told that this was routine. Eventually the baby was brought back and given to me. When I saw him I thought he looked very odd and was so floppy. When I held him upright I could see he was a mongol, but prayed that I was wrong and this would go away. I asked to be told what the matter was with the baby and was told to tell my husband to ask if I was worried – which made me more suspicious.</p> <p>Visiting was restricted and I did not see my husband until the evening. Fathers were just shown the babies at the nursery door and were not allowed to hold them. My husband was delighted that we had a little boy and I didn’t have the heart to tell him what I feared.</p> <p>David had difficulty feeding and was put on a bottle at three days, the teat of the bottle made with a big enough hole for the milk to drip into his mouth because he was not sucking. When we went home, still not having been told of his conditions, he was being fed 8 times a day taking just 1.5 ounces per feed. Each feed took an hour to get into him, then at night it was back to bed for 2 hours and a repeat performance.</p> <p>I took David to the child welfare clinic and again the actions of the people there spoke volumes, the health visitor hurried into the doctor and I was shown in – jumping the queue. (The clinic was held in our church hall which was next to the vicarage and I was very embarrassed that I should be singled out, although it was obvious why.) I asked the doctor what she thought and she said he did look mongoloid, but perhaps I should see the paediatrician where he was born.</p> <p>At 6 weeks <em>[ed: see photo]</em> I went for my post natal and there was great concern in the waiting room as to how the baby was getting on. None of the other mothers who were there were being asked. I said he still looks like a mongol. My husband was still not aware of David’s condition or my suspicions, I wanted to protect him from the hurt I was feeling, but now I know it was not the kindest thing to do.</p> <p>I then took David back to the Middlesex hospital and saw the paediatrician, who took him away from me, and whilst I sat at one end of a very large room he had David on a table at the other end with a group of students. I could not hear what they were saying, but when David was brought back to me I was told: <em>“You have a complete vegetable; he will never walk or talk – just lie in his pram and stare up at the sky. The best thing you can do is to put him in a home and forget you ever had a baby.”</em> I was devastated; I couldn’t run away from it any more. He had an enlarged liver and spleen and his spine was curving outwards. When I held him in my arms it was a little like a floppy parcel and there was no buoyancy at all.</p> <p>When I got home I couldn’t hold back the tears that had been stifled all those weeks and I had to tell my husband. It was dreadful, I think it would have been better had we been able to grieve together in the beginning.</p> <p>From then on everything David did was a milestone and he brought us a lot of joy. Just before he was five I had to take him to County Hall in London for assessment. That was a nightmare because by this time I had two other children – little boys – it was necessary to take the older of the two with me, a very busy child. We went into a large room and an elderly fussy lady had a lot of questions for David to answer. He was shown pictures and asked what they were. He hid his face from her and was saying the words to me, many of which he already knew, but because he was not answering her they were crossed out. So his assessment was a very low one.</p> <p>I don’t think it would have made a lot of difference whether he had answered her he so surely wasn’t school material. He had been going to a junior training centre from the age of 3½ because I was expecting Jonathan. A social worker who came to see me at that time asked what sex I would like my third child to be and I said I didn’t mind so long as I had a normal healthy child, and she said that was a funny answer to give – I didn’t think it funny.</p> <p>People’s reactions were very different 37 years ago <em>[ed: now 64 years]</em>. Once it was made known that David was as he was people who had known me from childhood would cross the street [to avoid speaking to me], they didn’t know what to say. But we didn’t hide him away and when we went on holiday we just said three children and we sometimes got a reaction when we arrived, but David was always well-behaved and everybody loved him. He learned a great deal from his brothers and I thank God he was our first child.</p> <p>[Dorothy Kathleen Lewis: Banbury 1990]</p> <p><a href="https://jonathanlewis.wordpress.com/2017/07/22/in-memoriam-2/david_6wks/" rel="attachment wp-att-17338"><img data-attachment-id="17338" data-permalink="https://jonathanlewis.wordpress.com/2017/07/22/in-memoriam-2/david_6wks/" data-orig-file="https://jonathanlewis.files.wordpress.com/2017/07/david_6wks.jpg" data-orig-size="1067,664" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="david_6wks" data-image-description="" data-medium-file="https://jonathanlewis.files.wordpress.com/2017/07/david_6wks.jpg?w=599&#038;h=373" data-large-file="https://jonathanlewis.files.wordpress.com/2017/07/david_6wks.jpg?w=1024" class="aligncenter wp-image-17338" src="https://jonathanlewis.files.wordpress.com/2017/07/david_6wks.jpg?w=599&#038;h=373" alt="" width="599" height="373" srcset="https://jonathanlewis.files.wordpress.com/2017/07/david_6wks.jpg?w=599&amp;h=373 599w, https://jonathanlewis.files.wordpress.com/2017/07/david_6wks.jpg?w=150&amp;h=93 150w, https://jonathanlewis.files.wordpress.com/2017/07/david_6wks.jpg?w=300&amp;h=187 300w, https://jonathanlewis.files.wordpress.com/2017/07/david_6wks.jpg?w=768&amp;h=478 768w, https://jonathanlewis.files.wordpress.com/2017/07/david_6wks.jpg?w=1024&amp;h=637 1024w, https://jonathanlewis.files.wordpress.com/2017/07/david_6wks.jpg 1067w" sizes="(max-width: 599px) 100vw, 599px" /></a></p> <h3>Footnote</h3> <p>While copying up this story I was prompted to look at a few statistics from the UK&#8217;s Office of National Statistics for 1953 (and 50 years later); in particular the stats about child mortality and measles caught my eye.</p> <p><span style="text-decoration:underline;"><strong>Infant mortality for England and Wales</strong></span></p> <table width="569"> <tbody> <tr> <td width="62">Year</td> <td width="72">Births</td> <td width="77">Still-births</td> <td width="116">Died with 1 week</td> <td width="129">Died within 4 weeks</td> <td width="113">Died within 1 year</td> </tr> <tr> <td>1953</td> <td>684,372</td> <td>15,681</td> <td>10,127</td> <td>12,088</td> <td>18,324</td> </tr> <tr> <td>2003</td> <td>621,469</td> <td>3,612</td> <td>1,749</td> <td>2,264</td> <td>3,306</td> </tr> </tbody> </table> <p>Don&#8217;t forget when you read the mortality figures that the 2003 numbers will include births that could be anything up to 8 weeks premature. I think anything more than about 2 weeks premature would probably have ended up in the still-births column in 1953.</p> <p><span style="text-decoration:underline;"><strong>Measles (England and Wales).</strong></span></p> <table width="194"> <tbody> <tr> <td width="62">Year</td> <td width="72">Cases Reported</td> <td width="60">Deaths</td> </tr> <tr> <td>1953</td> <td>545,050</td> <td>242</td> </tr> <tr> <td>2003</td> <td>2,048</td> <td>0</td> </tr> </tbody> </table> <h3>Addendum</h3> <p>I&#8217;ve received a private email pointing out that some of the cases reported as still-births in 1953 would now be identified as murder, where babies born with obvious viability issues would be smothered at birth &#8211; sometimes without the mother even knowing.</p> <p>&nbsp;</p><br /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonathanlewis.wordpress.com/17316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonathanlewis.wordpress.com/17316/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=jonathanlewis.wordpress.com&#038;blog=491988&#038;post=17316&#038;subd=jonathanlewis&#038;ref=&#038;feed=1" width="1" height="1" /> Jonathan Lewis http://jonathanlewis.wordpress.com/?p=17316 Sat Jul 22 2017 12:10:27 GMT-0400 (EDT) JDev/ADF sample - ADF Goes Client Side - UI Performance Boost with JavaScript http://andrejusb-samples.blogspot.com/2017/07/jdevadf-sample-adf-goes-client-side-ui.html <div dir="ltr" style="text-align: left;" trbidi="on"><ul><li><a href="http://andrejusb.blogspot.lt/2017/07/adf-goes-client-side-ui-performance.html" target="_blank">ADF Goes Client Side - UI Performance Boost with JavaScript</a>. If you would like to boost ADF UI performance, you should look into client side validation and formatting options possible to be done in ADF UI. Today I will describe how you can implement client side converter, to format number value on client side, without making request to the server. Same approach could be used to implement client side validators. You can raise error message and it will be assigned to UI field in the same way, just like any standard ADF error message. While this approach is documented long ago in Oracle ADF developer guide - <a href="http://docs.oracle.com/cd/E14571_01/web.1111/b31973/af_validate.htm#ADFUI360" target="_blank">How To Create Client Side Converter</a>, it is not well known and not often used.</li></ul><ol>Download - <a href="https://docs.google.com/uc?export=download&amp;id=0Bw_kr1_tXc-eT1dfbTUxRHhfUlU">ADFFormattingApp.zip</a></ol></div> Andrejus Baranovskis tag:blogger.com,1999:blog-4301764760924839143.post-2431744057523245613 Sat Jul 22 2017 12:02:00 GMT-0400 (EDT) VMware Workshop : It’s a Wrap! https://oracle-base.com/blog/2017/07/21/vmware-workshop-its-a-wrap/ <p><a href="https://www.vmware.com/"><img class="alignleft wp-image-7361" src="https://oracle-base.com/blog/wp-content/uploads/2017/07/vmware_and_pure_storage_logo-1.jpg" alt="" width="200" height="65" /></a>Just a few quick comments to wrap up the whole“VMware Expert Database Workshop Program Oracle Edition” event&#8230;</p> <p>Running Oracle workloads in virtualised environments is not a new thing for me. On my desktop I mostly use VirtualBox, but in the data centre it&#8217;s always <a href="https://www.vmware.com/">VMware</a>. I first started to run Oracle workloads on VMware about 15 years ago and have never really had any problems from a technology perspective. I&#8217;ve never been a VMware administrator, and never will be, but it&#8217;s important for me to know as much as possible about VMware to allow me to get the most out of the Oracle database when it&#8217;s running on that platform.</p> <p>A very big thank you to all the folks at <a href="https://www.vmware.com/">VMware</a> and <a href="https://www.purestorage.com/">Pure Storage</a> for inviting me to this event and organising everything. I feel hugely privileged to be able to get access to these people and this information!</p> <p>Thanks to all the speakers, VMware and non-VMware, who took the time to come and educate us and deal with our questions, whether they were good or dumb questions. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Thanks to <a href="https://twitter.com/Michael_Corey">Michael Corey</a> for being the event photographer, and not capturing me at my absolute worst. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>For those folks that don&#8217;t have the opportunity to take part in an event like this, you can still get all the non-NDA information for free! Just Google &#8220;VMware best practice&#8221; and the name of your area of interest, like &#8220;Oracle RAC&#8221;, and you are going to get a whole bunch of links to VMware best practice documents that will tell you everything you need to know! The take-home message from the VMware support folks was the vast majority of customer issues actually come down to misconfigurations that are detailed in these best practice documents. Only go off-piste if you know what you are doing! <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>Thank you everyone. Much appreciated! See you soon&#8230;</p> <p>Cheers</p> <p>Tim&#8230;</p> <p>PS. My posts related to this event were:</p> <ul> <li><a href="https://oracle-base.com/blog/2017/07/11/vmware-expert-database-workshop-program-oracle-edition/">VMware Expert Database Workshop Program Oracle Edition</a></li> <li><a href="https://oracle-base.com/blog/2017/07/18/vmware-workshop-the-journey-begins/">VMware Workshop : The Journey Begins</a></li> <li><a href="https://oracle-base.com/blog/2017/07/19/vmware-workshop-day-1/">VMware Workshop : Day 1</a></li> <li><a href="https://oracle-base.com/blog/2017/07/20/vmware-workshop-day-2/">VMware Workshop : Day 2</a></li> <li><a href="https://oracle-base.com/blog/2017/07/21/vmware-workshop-day-3/">VMware Workshop : Day 3</a></li> <li><a href="https://oracle-base.com/blog/2017/07/21/vmware-workshop-the-journey-home/">VMware Workshop : The Journey Home</a></li> <li>VMware Workshop : It&#8217;s a Wrap! (this post)</li> </ul> <hr style="border-top:black solid 1px" /><a href="https://oracle-base.com/blog/2017/07/21/vmware-workshop-its-a-wrap/">VMware Workshop : It&#8217;s a Wrap!</a> was first posted on July 21, 2017 at 7:28 pm.<br />©2012 "<a href="http://www.oracle-base.com/blog">The ORACLE-BASE Blog</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.<br /> Tim... https://oracle-base.com/blog/?p=7399 Fri Jul 21 2017 14:28:53 GMT-0400 (EDT) VMware Workshop : The Journey Home http://feedproxy.google.com/~r/TheOracleBaseBlog/~3/0Mzyct_M0AY/ <p><a href="https://www.vmware.com/"><img class="alignleft wp-image-7361" src="https://oracle-base.com/blog/wp-content/uploads/2017/07/vmware_and_pure_storage_logo-1.jpg" alt="" width="200" height="65" /></a>It was a later start today. I headed down to breakfast at about 08:15 to meet <a href="https://helifromfinland.blog/">Heli</a> (and family) and <a href="http://www.carajandb.com/en/">Johannes</a>. It was the first time I had made it to the hotel breakfast this week. Over time more people filtered in to say hello and goodbye. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>From there it was back to my room to write some blog posts and continue the process of playing catch-up with the stuff I have missed while I have been away. I&#8217;m officially on holiday, but I can&#8217;t stop myself from logging in to work every day, checking my emails and doing odd things to keep on top of stuff. The thought of going back next week and having to deal with the week&#8217;s backlog is too much for me. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>When I came to zip up my case the zip broke. I managed to fix it, but I was a bit concerned it might open in transit. At about 13:30 I headed off for the airport. The plane had been delayed coming out of Scotland, so it arrived late in Cork. As a result my flight home was delayed by about 40 minutes. The flight itself went smoothly enough and when I got to the other end my luggage was intact. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>I was going to get a taxi home, but the delay meant I would be stuck in rush hour traffic, so instead I opted for the train. The train is a lot cheaper, but super annoying as I need to take two trains and walk with the bags at the end&#8230;</p> <p>I ended up standing on both trains, then walking home in the rain. I had a coat in my bag, but I was scared to open my bag in case it wouldn&#8217;t close again&#8230; I arrived home wet, but in one piece&#8230; <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>I&#8217;ll do a wrap-up post next&#8230;</p> <p>Cheers</p> <p>Tim&#8230;</p> <hr style="border-top:black solid 1px" /><a href="https://oracle-base.com/blog/2017/07/21/vmware-workshop-the-journey-home/">VMware Workshop : The Journey Home</a> was first posted on July 21, 2017 at 7:22 pm.<br />©2012 "<a href="http://www.oracle-base.com/blog">The ORACLE-BASE Blog</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.<br /><img src="http://feeds.feedburner.com/~r/TheOracleBaseBlog/~4/0Mzyct_M0AY" height="1" width="1" alt=""/> Tim... https://oracle-base.com/blog/?p=7415 Fri Jul 21 2017 14:22:48 GMT-0400 (EDT) LEAP#324 EspoTek Labrador http://blog.tardate.com/2017/07/leap324-espotek-labrador.html <p>The <a href="https://www.crowdsupply.com/espotek/labrador">EspoTek Labrador</a> is a crowd-funded lab-on-a-board that includes an oscilloscope, waveform generator, power supply, logic analyzer, and multimeter. I was drawn to the project specifically because it promised open hardware, and multi-platform open source software. I’m really impressed by my first tests - no trouble getting the board up and running on MacOSX. As always, <a href="https://github.com/tardate/LittleArduinoProjects/tree/master/Equipment/Labrador">all notes, schematics and code are in the Little Electronics &amp; Arduino Projects repo on GitHub</a> <a href="https://github.com/tardate/LittleArduinoProjects/tree/master/Equipment/Labrador"><img src="http://leap.tardate.com/Equipment/Labrador/assets/Labrador_build.jpg" alt="hero_image" /></a></p> http://blog.tardate.com/2017/07/leap324-espotek-labrador.html Fri Jul 21 2017 11:56:01 GMT-0400 (EDT) TWO WAY SSL https://technology.amis.nl/2017/07/21/two-way-ssl/ <p>How it works in a simple view</p> <p>Several implementations are done with 2 way ssl certificates, but still wondering how it works? Let&#8217;s try to explain.</p> <p>Two-way ssl means that a client and a server communicates on a verified connection with each other. The verifying is done by certificates to identify. A server and a client has implemented a private key certificate and a public key certificate.</p> <p><strong>The terms.</strong></p> <p><strong>Secure Sockets Layer (SSL) certificates</strong>, sometimes called digital certificates, are used to establish an encrypted connection between a browser or user&#8217;s computer and a server or website. The SSL connection protects sensitive data, such as credit card information, exchanged during each visit, which is called a session, from being intercepted from non-authorized parties<strong>.</strong></p> <p><strong>Root certificates</strong> are a public key certificates that identifies a root certificate authority (CA). Root certificates are <a href="https://en.wikipedia.org/wiki/Self-signed_certificate">self-signed</a> and form the basis of an <a href="https://en.wikipedia.org/wiki/X.509">X.509</a>-based <a href="https://en.wikipedia.org/wiki/Public_key_infrastructure">public key infrastructure</a> (PKI).</p> <p>Encryption uses a <strong>private key/public key pair</strong> which ensures that the data can be encrypted by one key but can only be decrypted by the other key pair. The public key is shared while the private key is kept locally.</p> <p>The SSL connection can be established in two different ways: 1 or 2-way.</p> <p><strong>A one-way SSL</strong>: the SSL-client application is not verified by the SSL-server application. Only the server is verified.</p> <p><img data-attachment-id="45502" data-permalink="https://technology.amis.nl/2017/07/21/two-way-ssl/onewayssl/" data-orig-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/onewayssl.jpg?fit=600%2C272&amp;ssl=1" data-orig-size="600,272" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="onewayssl" data-image-description="" data-medium-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/onewayssl.jpg?fit=300%2C136&amp;ssl=1" data-large-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/onewayssl.jpg?fit=600%2C272&amp;ssl=1" class="alignnone size-full wp-image-45502" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/onewayssl.jpg?resize=600%2C272&#038;ssl=1" alt="" srcset="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/onewayssl.jpg?w=600&amp;ssl=1 600w, https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/onewayssl.jpg?resize=300%2C136&amp;ssl=1 300w" sizes="(max-width: 600px) 100vw, 600px" data-recalc-dims="1" /></p> <p>In a <strong>two-way SSL</strong> connection the SSL client application verifies the identity of the SSL server application, and then the SSL server application verifies the identity of the SSL-client application. Roughly the steps are like this:</p> <p><!-- x-tinymce/html --><img data-attachment-id="45501" data-permalink="https://technology.amis.nl/2017/07/21/two-way-ssl/encryptionkey/" data-orig-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/encryptionkey.jpg?fit=746%2C364&amp;ssl=1" data-orig-size="746,364" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&t;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="encryptionkey" data-image-description="" data-medium-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/encryptionkey.jpg?fit=300%2C146&amp;ssl=1" data-large-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/encryptionkey.jpg?fit=702%2C343&amp;ssl=1" class="alignnone size-full wp-image-45501" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/encryptionkey.jpg?resize=702%2C343&#038;ssl=1" alt="" srcset="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/encryptionkey.jpg?w=746&amp;ssl=1 746w, https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/encryptionkey.jpg?resize=300%2C146&amp;ssl=1 300w" sizes="(max-width: 702px) 100vw, 702px" data-recalc-dims="1" /></p> <p>Or in a different perspective:</p> <p><!-- x-tinymce/html --><img data-attachment-id="45500" data-permalink="https://technology.amis.nl/2017/07/21/two-way-ssl/twowyssl2/" data-orig-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/twowyssl2.jpg?fit=398%2C206&amp;ssl=1" data-orig-size="398,206" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="twowyssl2" data-image-description="" data-medium-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/twowyssl2.jpg?fit=300%2C155&amp;ssl=1" data-large-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/twowyssl2.jpg?fit=398%2C206&amp;ssl=1" class="alignnone wp-image-45500" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/twowyssl2.jpg?resize=702%2C363&#038;ssl=1" alt="" srcset="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/twowyssl2.jpg?w=398&amp;ssl=1 398w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/twowyssl2.jpg?resize=300%2C155&amp;ssl=1 300w" sizes="(max-width: 702px) 100vw, 702px" data-recalc-dims="1" /></p> <p>What’s the process like, e.g. compared with a cash withdrawal:</p> <p>The proces can be compared with a cash withdrawal, putting in your creditcard corresponds to sending a hello to the server. Your card will be accepted if your card is valid for that machine.  You will be asked for your code.</p> <p>A server has a private certificate which will be accepted by a client. The client also has a private certificate which will be accepted by the server. This is called the handshake. At that point it is safe to sent messages to each other.</p> <p>With two way ssl, the server sent a code,  the cliënt accept the code.</p> <p>Back to the withdrawal machine, the display asks for your code and when typing in the right code, it will be sent to the server. The server accept the connection.</p> <p>With the two-way ssl process the clients sents a thumbprint which should be accepted on the server. When this proces is ready on the withdrawal you might put in the amount you want to receive, on the two-way ssl connection a message could be sent. The withdrawal machine responds with cash and probably a revenu, the two-way ssl connections with a respond message.</p> <p>Sending information to a http address is done in plain text, this is not likely for several internet traffic. You don’t want to communicate password in plain text over the internet as a prey for the hackers. So https and a certificate is necessary.</p> <p>Let’s discuss this more in technical detail, with describing the basic components necessary for communicate 2-way SSL over https.</p> <p>So the first part to describe, the <strong>public key.</strong></p> <p>A public key consists of a root certificate with one or more intermediate certificates. A certificate authority generates a root certificate and on top of these an intermediate certificate and on top of that certificate another intermediate certificate.</p> <p><!-- x-tinymce/html --><img data-attachment-id="45499" data-permalink="https://technology.amis.nl/2017/07/21/two-way-ssl/certificatechain/" data-orig-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/certificatechain.jpg?fit=335%2C293&amp;ssl=1" data-orig-size="335,293" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="certificatechain" data-image-description="" data-medium-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/certificatechain.jpg?fit=300%2C262&amp;ssl=1" data-large-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/certificatechain.jpg?fit=335%2C293&amp;ssl=1" class="alignnone wp-image-45499" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/certificatechain.jpg?resize=433%2C379&#038;ssl=1" alt="" srcset="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/certificatechain.jpg?w=335&amp;ssl=1 335w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/certificatechain.jpg?resize=300%2C262&amp;ssl=1 300w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/certificatechain.jpg?resize=110%2C96&amp;ssl=1 110w" sizes="(max-width: 433px) 100vw, 433px" data-recalc-dims="1" /></p> <p>This is done to arrange a smaller set of clients who can communicate with you. A root certificate will be used in several intermediates, and an intermediate certificate will be used in other intermediate certificates, so using the root certificate will remain in accepting connections of all intermediates. A public key is not protected by password and can be shared.</p> <p>The second part is the <strong>private key</strong>.</p> <p>A private key is built like a public key but on top there is a private key installed, this key is client specific and protected by a password. This private key represent you as firm or as person, so you don’t want to share this key with other people.</p> <p>What happens when setting up <strong>a two-way ssl connection</strong></p> <p>The first step in the communication is sent a hello from the client to the server and then information is exchanged. The servers sends a request to the client with an encoded string of the thumbprint of his private key. The authorization key of the public chain below is sent to ask if the client will accept the communication. When the public key of the request corresponds to a public key on the client an OK sign will be sent back.</p> <p>The server asks also for the encoded string of the client, so the client will sent his encoded string of the thumbprint to the server. When the server accepts this in case of a match on his public key the connection between client and server is established and a message could be sent.</p> <p><img data-attachment-id="45370" data-permalink="https://technology.amis.nl/2017/07/21/two-way-ssl/twowayssl/" data-orig-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/twowayssl.jpg?fit=2016%2C1512&amp;ssl=1" data-orig-size="2016,1512" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="twowayssl" data-image-description="" data-medium-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/twowayssl.jpg?fit=300%2C225&amp;ssl=1" data-large-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/twowayssl.jpg?fit=702%2C527&amp;ssl=1" class="alignnone wp-image-45370" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/twowayssl.jpg?resize=697%2C523&#038;ssl=1" alt="" srcset="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/twowayssl.jpg?w=2016&amp;ssl=1 2016w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/twowayssl.jpg?resize=300%2C225&amp;ssl=1 300w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/twowayssl.jpg?resize=768%2C576&amp;ssl=1 768w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/twowayssl.jpg?resize=1024%2C768&amp;ssl=1 1024w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/twowayssl.jpg?w=1404&amp;ssl=1 1404w" sizes="(max-width: 697px) 100vw, 697px" data-recalc-dims="1" /></p> <p>A certificate has an expiration date, so a certificate (public and private) will only works until the expiration date is reached. Normally it will take some time to receive a new certificate so do a request for a new certificate on time.</p> <p>A certificate has a version within, for now version 3 is the standard version. Also the term SHA will be used, the start was with sha1 but still this one is achieved not safe enough anymore so we use SHA2 certificates or SHA256 as it will be shown.</p> <p>The post <a rel="nofollow" href="https://technology.amis.nl/2017/07/21/two-way-ssl/">TWO WAY SSL</a> appeared first on <a rel="nofollow" href="https://technology.amis.nl">AMIS Oracle and Java Blog</a>.</p> Lammert Kiers https://technology.amis.nl/?p=45371 Fri Jul 21 2017 10:51:55 GMT-0400 (EDT) VMware Workshop : Day 3 http://feedproxy.google.com/~r/TheOracleBaseBlog/~3/KicCaOI28-g/ <p><a href="https://www.vmware.com/"><img class="alignleft wp-image-7361" src="https://oracle-base.com/blog/wp-content/uploads/2017/07/vmware_and_pure_storage_logo-1.jpg" alt="" width="200" height="65" /></a>Day 3 started the same way as day 2. I woke up and felt like a total zombie due to lack of sleep.</p> <p>The agenda for “VMware Expert Database Workshop Program Oracle Edition” day 3 was packed and looked something like this.</p> <ul> <li>&#8220;License Fortress from VLSS&#8221; by Dean Bolton</li> <li>&#8220;VMware vSphere Core &amp; SDDC &#8211; Networking &#8211; NSX &amp; VCNS&#8221; by Chris Rohan</li> <li>&#8220;VMware Experts Event &#8211; Brocade and VMware Technology and the VMware Solutions Lab&#8221; by Marcus Thordal</li> <li>&#8220;VMware Integrated Containers and Oracle&#8221; by Simon Guyennet</li> <li>&#8220;VMware Executive Presentation – The CPBU, vSphere and Friends, and the Experts Program&#8221; by Mike Adams</li> <li>&#8220;VMware Experts Event &#8211; Pure Storage &#8211; Technical Session #2&#8221; by <a href="https://twitter.com/purelyDB">Somu Rajarathinam</a> &amp; <a href="https://twitter.com/RonEkins">Ron Ekins</a></li> <li>&#8220;High Availability and Disaster Recovery in the SDDC&#8221; by <a href="https://twitter.com/feidhIim">Feidhlim O&#8217;Leary</a></li> <li>&#8220;Management &amp; Monitoring &#8211; Blue Medora and Oracle on vSphere&#8221; by <a href="https://twitter.com/alaingeenrits">Alain Geenrits</a></li> <li>&#8220;License Audit&#8221; by Daniel Hesselink</li> <li>&#8220;vSphere HA or Oracle RAC, SRM or Data Guard, they are all complimentary when Oracle is run in the SDDC&#8221; by Sudhir Balasubramanian</li> </ul> <p>The business proposition from <a href="http://www.vlss-llc.com/">VLSS</a> is super interesting. To put it simply they offer an insurance policy for your Oracle compliance. If you are running Oracle workloads on VMware, or any other platform for that matter, you should definitely look at this!</p> <p>Since I&#8217;m currently going down the rabbit hole with Docker, the vSphere container stuff was pretty interesting. Both what is already GA and what is coming&#8230; <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>At the end of the last session we recorded a short video question/answer session, which will probably come out in a montage at some point. Kind-of scary and fun mixed together. From there we had a quick tour of Global Support Services (GSS), before heading back to the hotel. Before I knew what happened the last day was done!</p> <p>In the evening a group of us went out to eat, then it was back to the hotel to chat more about tech, how the workshop had gone, life, the universe and everything. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>I&#8217;ll do a proper wrap-up post when I get back home with all the real thank you messages in it, but suffice to say thanks to everyone for making this happen and letting me be a part of it.</p> <p>Cheers</p> <p>Tim&#8230;</p> <hr style="border-top:black solid 1px" /><a href="https://oracle-base.com/blog/2017/07/21/vmware-workshop-day-3/">VMware Workshop : Day 3</a> was first posted on July 21, 2017 at 9:52 am.<br />©2012 "<a href="http://www.oracle-base.com/blog">The ORACLE-BASE Blog</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.<br /><img src="http://feeds.feedburner.com/~r/TheOracleBaseBlog/~4/KicCaOI28-g" height="1" width="1" alt=""/> Tim... https://oracle-base.com/blog/?p=7395 Fri Jul 21 2017 04:52:50 GMT-0400 (EDT) Oracle Forms 12c oracle.security.jps.JpsException Error after Database change http://dirknachbar.blogspot.com/2017/07/oracle-forms-12c-oraclesecurityjpsjpsex.html My current huge Oracle Forms 12c Migration Project is still going on and every day we have some new problems.<br /><br /><div></div>After the DBA's were moving our Repository Database for the new Oracle Forms 12c environments (without any notice to us ...), nothing were working again on our environment :-)<br /><br /><div></div>So the first step, were to stop all processes from our Oracle Forms 12c environment:<br /><ul><li>Reports Server</li><li>all Managed Servers containing Oracle Reports and Oracle Forms Applications</li><li>Admin Server</li></ul>Next step, we aligned the 4 JDBC Connections under $DOMAIN_HOME/config/jdbc in order to point to the new Database Server location:<br /><ul><li>LocalSvcTblDataSource-jdbc.xml</li><li>opss-audit-jdbc.xml</li><li>opss-auditview-jdbc.xml</li><li>opss-datasource-jdbc.xml</li></ul><div></div><div></div>After that I tried to startup the Admin Server ... after some seconds the Admin Server stopped directly and in the corresponding logfile of the Admin Server I could find following error message:<br /><div></div><pre class="brush:bash">&lt;BEA-000362&gt; &lt;Server failed. Reason:<br />There are 1 nested errors:<br />oracle.security.jps.JpsException: oracle.security.jps.service.policystore.PolicyStoreException: javax.persistence.PersistenceException: java.lang.ClassCastException: oracle.jdbc.xa.client.OracleXADataSource cannot be cast to java.sql.Driver<br /> at oracle.security.jps.internal.config.OpssCommonStartup.start(OpssCommonStartup.java:215)<br /> at oracle.security.jps.wls.JpsWlsStartup.start(JpsWlsStartup.java:104)<br /> at oracle.security.jps.JpsStartup.start(JpsStartup.java:210)<br /> at oracle.security.jps.wls.JpsDefaultService.start(JpsDefaultService.java:74)<br /> . . .<br /> . . .<br />Caused by: oracle.security.jps.service.policystore.PolicyStoreException: javax.persistence.PersistenceException: java.lang.ClassCastException: oracle.jdbc.xa.client.OracleXADataSource cannot be cast to java.sql.Driver<br /> at oracle.security.jps.internal.policystore.rdbms.JpsDBDataManager.processJPAException(JpsDBDataManager.java:2658)<br /> at oracle.security.jps.internal.policystore.rdbms.JpsDBDataManager.existsTable(JpsDBDataManager.java:1682)<br /> . . .<br /> . . .<br /></pre><br /><div></div>I verfied once again, if all JDBC Connections were defined correctly and I didn't found any typomistake or error ...<br /><br /><div></div>Finally, I came across the configuration files for the Oracle Platform Security for Java Configuration Files jps-config.xml and jps-config-jse.xml under $DOMAIN_HOME/config/fmwconfig. Within these 2 Configuration Files you also have to align the changed Database Server location.<br /><br /><div></div>In jps-config.xml go to line 22 and align the following line with your new settings:<br /><div></div><pre class="brush:bash"># Line 22<br />&lt;property name="jdbc.url" value="jdbc:oracle:thin:@//dbserver:listener_port/DB_ServiceName"/&gt;<br /></pre><br /><div></div>In the jps-config-jse.xml you have to align 2 lines with your new settings, line number 20 and line number 168:<br /><div></div><pre class="brush:bash"># Line 20<br />&lt;property name="jdbc.url" value="jdbc:oracle:thin:@//dbserver:listener_port/DB_ServiceName"/&gt;<br /><br /># Line 168<br />&lt;property name="audit.loader.jdbc.string" value="jdbc:oracle:thin:@//dbserver:listener_port/DB_ServiceName"/&gt;<br /></pre><div></div>After that you can startup your Admin Server and your Managed Servers for your Oracle Forms 12c environment without any problems :-)<br /><div></div><br /> Dirk Nachbar tag:blogger.com,1999:blog-4344684978957885806.post-8105549429970965093 Thu Jul 20 2017 10:11:00 GMT-0400 (EDT) एक और सुनो http://ezsaid.blogspot.com/2017/07/blog-post_20.html ashish tag:blogger.com,1999:blog-14142302.post-81484546557702684 Thu Jul 20 2017 03:19:00 GMT-0400 (EDT) VMware Workshop : Day 2 http://feedproxy.google.com/~r/TheOracleBaseBlog/~3/D0Brc0eBwCo/ <p><a href="https://www.vmware.com/"><img class="alignleft wp-image-7361" src="https://oracle-base.com/blog/wp-content/uploads/2017/07/vmware_and_pure_storage_logo-1.jpg" alt="" width="200" height="65" /></a>Another late night and another morning feeling like a zombie! <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>The agenda for “VMware Expert Database Workshop Program Oracle Edition” day 2 looked something like this.</p> <ul> <li>&#8220;The Best Oracle Support Team on Earth – Global Support Services Oracle Team&#8221; by Yvonne Murphy and Gabi Rosell</li> <li>&#8220;Oracle on vSphere Licensing&#8221; by Dave Welch</li> <li>&#8220;vRealize Automation and Oracle&#8221; by Jad El-Zein</li> <li>&#8220;vRealize Automation and Oracle mini Workshop&#8221; by Jad El-Zein</li> <li>&#8220;vSphere Core Storage Fundamentals&#8221; by Andres Scherr</li> <li>&#8220;vSphere Core &#8211; vCPU Scheduler &amp; Memory allocated to Virtual Machines&#8221; by Valentin Bondzio</li> <li>&#8220;Troubleshooting in Virtual Environments for DBs from the GOS\vNUMA&#8221; by Valentin Bondzio</li> <li>&#8220;Modern Converged Storage, &amp; VSAN &amp; VVols&#8221; by Andres Scherr</li> <li>&#8220;Oracle on vSphere on Pure Storage Cloud based Labs &#8211; Day 2&#8221;</li> </ul> <p>It was another full-on day. Lots of content. Lots of questions. Lots of answers. I really hope when I get home I can make sense of the notes I took during the day! <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p><img class="wp-image-7393 alignleft" src="https://oracle-base.com/blog/wp-content/uploads/2017/07/dancing2.jpg" alt="" width="150" height="201" /></p> <p>In the evening we went out to a bar in the town and got food and drink for those that do. During the food there was music and Irish dancing by <a href="https://twitter.com/TanelPoder">Tanel Poder</a>? <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>We got back to the hotel at about 22:00, so the obvious thing to do was go to bed. Unfortunately I stayed up until after midnight chatting about tech again! It&#8217;s going to be a tough day tomorrow! <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>Cheers</p> <p>Tim&#8230;</p> <hr style="border-top:black solid 1px" /><a href="https://oracle-base.com/blog/2017/07/20/vmware-workshop-day-2/">VMware Workshop : Day 2</a> was first posted on July 20, 2017 at 7:40 am.<br />©2012 "<a href="http://www.oracle-base.com/blog">The ORACLE-BASE Blog</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.<br /><img src="http://feeds.feedburner.com/~r/TheOracleBaseBlog/~4/D0Brc0eBwCo" height="1" width="1" alt=""/> Tim... https://oracle-base.com/blog/?p=7387 Thu Jul 20 2017 02:40:34 GMT-0400 (EDT) Deploy node-oracledb with Official Instant Client Image http://dbaontap.com/2017/07/20/deploy-node-oracledb-instant-client/ <p>A few days ago, I started building a PoC with the Oracle DB 12.1 and Oracle Instant Client. My goal was to deploy each component to separate and see if I could access the DB from the OIC container. Now to take it a step further. Adding the node-oracledb driver to enable Node.js interaction with ...</p> <p>The post <a rel="nofollow" href="http://dbaontap.com/2017/07/20/deploy-node-oracledb-instant-client/">Deploy node-oracledb with Official Instant Client Image</a> appeared first on <a rel="nofollow" href="http://dbaontap.com">dbaonTap</a>.</p> DB http://dbaontap.com/?p=1374 Thu Jul 20 2017 00:27:44 GMT-0400 (EDT) The $50 Million Hyphen http://dbakevlar.com/2017/07/50-million-hyphen/ <div class="pf-content"><p><span style="font-weight: 400;">There are a plethora of mishaps in the early space program to prove the need for DevOps, but Fifty-five years ago this month, there was one in particular that is often used as an example for all.  This simple human error almost ended the whole American space program and it serves as a strong example of why DevOps is essential as agile speeds up the development cycle.  </span></p> <p><a href="http://dbakevlar.com/2017/07/50-million-hyphen/oops/" rel="attachment wp-att-6928"><img class="alignnone wp-image-6928" src="https://i2.wp.com/dbakevlar.com/wp-content/uploads/2017/07/oops.gif?resize=533%2C292" alt="" data-recalc-dims="1" /></a></p> <p><span style="font-weight: 400;">The <strong>Mariner I </strong></span>space probe was a pivotal point in the space race between the United States and the Soviet Union.  The space probe was a grand expedition into a series of large, sophisticated, as well as interplanetary missions, all to carry the Mariner moniker.  For this venture to launch, (pun intended) it was dependent on a huge, as well as new development project for a powerful booster rocket called the Atlas-Centaur.  The development program ran into so many testing failures that NASA ended up dropping the initial project and going with a less sophisticated booster to meet the release date, (i.e. features dropped from the project.)  These new probe designs were based off the previously used Ranger moon probes, so there was less testing thought needed and the Atlas Agena B Booster was born, bringing the Mariner project down to a meager cost of $80 million.</p> <p><a href="http://dbakevlar.com/2017/07/50-million-hyphen/screen-shot-2017-07-19-at-4-37-06-pm/" rel="attachment wp-att-6926"><img class="alignnone size-large wp-image-6926" src="https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-19-at-4.37.06-PM.png?resize=600%2C485" alt="" srcset="https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-19-at-4.37.06-PM.png?resize=1024%2C827 1024w, https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-19-at-4.37.06-PM.png?resize=300%2C242 300w, https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-19-at-4.37.06-PM.png?resize=768%2C621 768w, https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-19-at-4.37.06-PM.png?w=1406 1406w, https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-19-at-4.37.06-PM.png?w=1200 1200w" sizes="(max-width: 600px) 100vw, 600px" data-recalc-dims="1" /></a></p> <p><span style="font-weight: 400;">The goal of the Mariner I was to perform an unmanned mission to Mars, Venus and Mercury.  It was equipped with solar cells on its wings to assist on the voyage, which was all new technology, but the booster, required to escape Earth’s gravity, was an essential part of the project. As the boosters were based off of older technology than many of the newer features, the same attention wasn’t offered to it while testing was being performed.</span></p> <p><span style="font-weight: 400;">On July 22nd, 1962, the Mariner I lifted off, but after approximately four minutes in, it veered off course.  NASA made the fateful decision to terminate the spacecraft and destroyed millions of dollars of equipment, ensuring it didn’t end up crashing on its own into populated areas.</span></p> <p><span style="font-weight: 400;">As has already been well documented, the guidance system, which was supposed to correct the Mariner 1 flight, had a single typo in the entire coded program.  A missing hyphen, required for instructions to adjust flight patterns was missing.  Where it should have read “R-dot-bar sub-n”, instead was “R-dot-bar </span><b>sub n</b><span style="font-weight: 400;">”.  This minor change caused the program to over-correct small velocity changes and created erratic steering commands to the spacecraft. </span></p> <p><span style="font-weight: 400;">This missing hyphen caused a loss of </span><a href="https://priceonomics.com/the-typo-that-destroyed-a-space-shuttle/"><span style="font-weight: 400;">millions of dollars in the space program</span></a><span style="font-weight: 400;"> and is considered the most expensive hyphen in history.</span></p> <blockquote><p><span style="font-weight: 400;">How does this feed into the DevOps scenario?  </span></p></blockquote> <p><span style="font-weight: 400;">Missing release dates for software can cost companies millions of dollars, but so can the smallest typos.  Reusing code and automation of programming, along with proper policies, process and collaboration throughout the development cycle ensures that code isn’t just well written, but in these shortened development cycles, it’s reviewed and tested fully before it’s released.  When releases are done in smaller test scenarios, a feedback loop is ensured so that errors are caught early and guaranteed not to go into production.</span></p> <!-- Easy Plugin for AdSense Unfiltered [count: 3 is not less than 3] --></div><br><<img src="https://i2.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/ico-tag.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> Tags:&nbsp;&nbsp;<a href="http://dbakevlar.com/tag/devops/" rel="tag">DevOps</a><br><br><div style="width:100%"><table align="left" width="100%" cellspacing="0" cellpadding="0" bgcolor="#f1f1f1" border="0px;"> <tbody> <tr bgcolor="#ffffff"><td align="center" width="17%" valign="top"> <span class="sb_title">Del.icio.us</span><br> <a href="http://del.icio.us/post?url=http://dbakevlar.com/2017/07/50-million-hyphen/&title=The $50 Million Hyphen"> <img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/delicious.gif?w=600" border="0" align="absmiddle" data-recalc-dims="1"> </a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">Facebook</span><br> <a href="http://www.facebook.com/share.php?u=http://dbakevlar.com/2017/07/50-million-hyphen/"><img src="https://i0.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/facebook_icon.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">TweetThis</span><br> <a href="http://twitthis.com/twit?url=http://dbakevlar.com/2017/07/50-million-hyphen/&title=The $50 Million Hyphen"><img src="https://i2.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tweet.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">Digg</span><br> <a href="http://digg.com/submit?phase=2&url=http://dbakevlar.com/2017/07/50-million-hyphen/&title=The $50 Million Hyphen"><img src="https://i0.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/digg.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">StumbleUpon</span><br> <a href="http://www.stumbleupon.com/submit?url=http://dbakevlar.com/2017/07/50-million-hyphen/&title=The $50 Million Hyphen"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/stumble.gif?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td></tr> </tbody></table></div><br><div style="clear:both"></div><div style="background:#EEEEEE; padding:0px 0px 0px 15px; margin:10px 0px 0px 0px;"><div style="padding:5px 0px 5px 0px;"><b>Comments:</b>&nbsp;&nbsp;<a href="http://dbakevlar.com/2017/07/50-million-hyphen/#comments">2 comments on this item</a></div><br><div style="clear:both"></div><div style="padding:13px 0px 5px 0px;"><span style="border-bottom:1px dashed #003399;padding-bottom:4px;"><strong>You might be interested in this:</strong></span>&nbsp;&nbsp;<br><ul style="margin:0; padding:0; padding-top:10px; padding-bottom:5px;"><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2017/02/avoid-disasters-delphix/" >How to Avoid Disasters with Delphix</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2017/02/aws-trial-alias-ip-address/" >The AWS Trial and Changing IP Addresses</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2013/08/em12c-enterprise-monitoring-part-iii/" >EM12c Enterprise Monitoring, Part III</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2016/03/retaining-previous-agent-images-the-why-and-the-how/" >Retaining Previous Agent Images, the Why and the How</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2016/07/delphix-express-adding-xe-dsource/" >Delphix Express- Adding XE DSource</a></li></ul></div></div><hr style="color:#EBEBEB" /><small>Copyright © <a href="http://dbakevlar.com">DBA Kevlar</a> [<a href="http://dbakevlar.com/2017/07/50-million-hyphen/">The $50 Million Hyphen</a>], All Right Reserved. 2017.</small><br><p>The post <a rel="nofollow" href="http://dbakevlar.com/2017/07/50-million-hyphen/">The $50 Million Hyphen</a> appeared first on <a rel="nofollow" href="http://dbakevlar.com">DBA Kevlar</a>.</p> dbakevlar http://dbakevlar.com/?p=6925 Wed Jul 19 2017 18:50:22 GMT-0400 (EDT) A Birthday This Big Deserves an Entire Year of Celebrations – Happy Birthday ODTUG! http://www.odtug.com/p/bl/et/blogaid=739&source=1 A Birthday This Big Deserves an Entire Year of Celebrations – Happy Birthday ODTUG! If you think you know everything about ODTUG’s history – think again! We’ve picked the minds of many long-time ODTUGers and compiled this list of memorable ODTUG milestones. ODTUG http://www.odtug.com/p/bl/et/blogaid=739&source=1 Wed Jul 19 2017 16:12:34 GMT-0400 (EDT) Oracle Container Registry - First Impressions http://dirknachbar.blogspot.com/2017/07/oracle-container-registry-first.html After my long holiday, I discovered today that the Oracle Container Registry is now world wide accessible :-) before the Oracle Container Registry were only accessible from USA, Australia and UK.<br /><br />The Oracle Container Registry contains several types of Docker images:<br /><ul><li>Database: Oracle Enterprise Edition, Oracle Standard Edition and Instant Client</li><li>Java: Oracle Java SE</li><li>Middleware: Oracle Coherence, Oracle Tuxedo, Oracle WebLogic Server, Oracle WebTier</li><li>MySQL: MySQL Community Server</li><li>OS: Oracle Linux, Container Registry</li><li>OpenStack: contains currently 95 API's and so on ...</li></ul><div>At first you need to access the website&nbsp;<a href="https://container-registry.oracle.com/" target="_blank">https://container-registry.oracle.com</a>&nbsp;, click on the top right to sign in, you will need an OTN Account and follow the registration process.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-Rzx0I9HCPBU/WW9AOZBDDEI/AAAAAAAAAos/xikYg7pzgJE-Opv1weEO-oTpuTbkIj95ACLcBGAs/s1600/OracleContainerRegistryWebsite.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="912" data-original-width="1600" height="364" src="https://1.bp.blogspot.com/-Rzx0I9HCPBU/WW9AOZBDDEI/AAAAAAAAAos/xikYg7pzgJE-Opv1weEO-oTpuTbkIj95ACLcBGAs/s640/OracleContainerRegistryWebsite.png" width="640" /></a></div><div><br /></div><div>After you have completed your registration to the Oracle Container Registry just Sign In and you will be directed automatically to following website:</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-pvl0K5xHh4Q/WW9AjoVU_GI/AAAAAAAAAow/D0rElJmLatcRPkhA2BsQQ6mVFv5FGbCewCLcBGAs/s1600/OCR_Selection.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1034" data-original-width="1424" height="464" src="https://1.bp.blogspot.com/-pvl0K5xHh4Q/WW9AjoVU_GI/AAAAAAAAAow/D0rElJmLatcRPkhA2BsQQ6mVFv5FGbCewCLcBGAs/s640/OCR_Selection.png" width="640" /></a></div><div><br /></div><div>From this point you can get down to Docker Image you are interested, for example the Middleware Section:</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-FJDbkksg3fM/WW9A0CnWa9I/AAAAAAAAAo0/lNPTgb1R5J88j3plNDw2dFFEMiiXz2C-wCLcBGAs/s1600/OCR_Middleware.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="838" data-original-width="1112" height="480" src="https://2.bp.blogspot.com/-FJDbkksg3fM/WW9A0CnWa9I/AAAAAAAAAo0/lNPTgb1R5J88j3plNDw2dFFEMiiXz2C-wCLcBGAs/s640/OCR_Middleware.png" width="640" /></a></div><div><br /></div><div>Within each Main Section you will find different Repositores, e.g. Oracle Coherence, Oracle Tuxedo, Oracle WebLogic Server and Oracle Web Tier.</div><div><br /></div><div>When you select a specific Repository, e.g. Oracle WebLogic Server, you will be directed to the Repository Info Page:</div><div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-CjL0rbx0_Eg/WW9TMiyszQI/AAAAAAAAApE/kLvWRsVzE0g-KyXt5zC2PxtVi3HJfoRSACLcBGAs/s1600/OCR_WebLogic.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="809" data-original-width="1600" height="322" src="https://3.bp.blogspot.com/-CjL0rbx0_Eg/WW9TMiyszQI/AAAAAAAAApE/kLvWRsVzE0g-KyXt5zC2PxtVi3HJfoRSACLcBGAs/s640/OCR_WebLogic.png" width="640" /></a></div><br /></div><div class="separator" style="clear: both; text-align: center;"></div><div><br /></div><div>On this page you will find various informations about the Repository and informations how to pull the Image, how to create e.g. a WebLogic Domain with an Admin Server and so on.</div><div><br /></div><div>Let's try it.</div><div><br /></div><pre class="brush:bash"># At First Login with your Docker<br /># to the Oracle Container Registry<br />din@server&gt; docker login container-registry.oracle.com<br />Username: xx@xx.xxx<br />Password: <br />Email: xx@xx.xxx<br />WARNING: login credentials saved in /home/din/.docker/config.json<br />Login Succeeded<br /><br /># Now let's pull the Oracle WebLogic Server<br />din@server&gt; docker pull container-registry.oracle.com/middleware/weblogic<br />Using default tag: latest<br /><br />Please login prior to pull:<br />Username: xx@xx.xxx<br />Password: <br />Email: xx@xx.xxx<br />latest: Pulling from middleware/weblogic<br />78a05301de27: Pull complete <br />1bd2d038d806: Pull complete <br />4b7f2458c2b0: Pull complete <br />9b1f6785ca2d: Pull complete <br />b83e45ee2903: Pull complete <br />Digest: sha256:f42f1a6036e240c32e9438dfba3a883da7f99d10b26a1ca6efe6e0e2f5187af9<br />Status: Downloaded newer image for container-registry.oracle.com/middleware/weblogic:latest<br /><br /># Now let's start the Oracle WebLogic Domain<br />din@server&gt; docker run -d -p 7001:7001 container-registry.oracle.com/middleware/weblogic:12.2.1.1<br />7cdddadc00d8c60d3f310d98bd5f1f0e35d55c305c97195142849ae2bc02772c<br /><br /># Wait some minutes and check the Container ID in order<br /># to grep from the logs the newly generated password<br /># for the WebLogic Admin User<br />din@server&gt; docker ps<br />CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES<br />7cdddadc00d8 container-registry.oracle.com/middleware/weblogic:12.2.1.1 "/u01/oracle/createAn" About a minute ago Up About a minute 0.0.0.0:7001-&gt;7001/tcp condescending_swartz<br /><br />din@server&gt; docker logs 7cdddadc00d8 | grep password<br /> Oracle WebLogic Server Auto Generated Admin password: d76074ec<br />* password assigned to an admin-level user. For *<br /></pre><div><br />Now you can open your Browser and access the following website http://localhost:7001/console and login with the Username weblogic and the password you retrieved from the above shown docker logs command.<br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-J1Lx_W0bM6E/WW9MIieB-vI/AAAAAAAAApA/qrJCLHxpdDsX7Gn21v_v406Kt0prQCQMQCLcBGAs/s1600/WebLogicConsole.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1068" data-original-width="1600" height="426" src="https://4.bp.blogspot.com/-J1Lx_W0bM6E/WW9MIieB-vI/AAAAAAAAApA/qrJCLHxpdDsX7Gn21v_v406Kt0prQCQMQCLcBGAs/s640/WebLogicConsole.png" width="640" /></a></div><br /><br />There are some small pain points:<br /><br /><ul><li>The current Release of the Oracle WebLogic Server is only 12.2.1.1.0, so its not the actual latest Release</li><li>The acceptance of the Oracle Standard Terms and Restrictions are only valid for 8 hours, so if you want to pull something new after one day, you have to get back to the Oracle Container Registry Website and re-accept the Oracle Standard Terms and Restrictions</li></ul><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-3HsDoMhvmKE/WW9InzWSFGI/AAAAAAAAAo8/P1R2cKjQxoMUE-vsJB6eSdH-Enm2r13yACLcBGAs/s1600/OracleStandardTerms.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="212" data-original-width="1600" height="84" src="https://4.bp.blogspot.com/-3HsDoMhvmKE/WW9InzWSFGI/AAAAAAAAAo8/P1R2cKjQxoMUE-vsJB6eSdH-Enm2r13yACLcBGAs/s640/OracleStandardTerms.png" width="640" /></a></div><div><br /></div><div>But nevertheless, the Oracle Container Registry is a great option provided by Oracle to get quickly Docker Images for the main product line without any pain to write your own Docker Build Files.<br /><br /><b>Additional Note 21st July 2017: </b>The above mentioned 8 hours expiration time of the acceptance of the Oracle Standard Terms and Restrictions is no longer valid, Thanks&nbsp;<a href="https://twitter.com/MikeRaab" target="_blank">@MikeRaab</a> for the hint<br /><br /></div></div><div><br /></div> Dirk Nachbar tag:blogger.com,1999:blog-4344684978957885806.post-8094419531748512698 Wed Jul 19 2017 08:12:00 GMT-0400 (EDT) Upcoming conferences – end of 2017 https://ilmarkerm.eu/blog/2017/07/upcoming-conferences-end-of-2017/#utm_source=rss&utm_medium=rss <p>I&#8217;ve been accepted to the following upcoming conferences:</p> <ul> <li>16-18 October <a href="http://www.sioug.si/index.php/sioug-2017?utm_source=rss&utm_medium=rss">SIOUG 17 &#8211; Slovenian Oracle User Group</a> <ul> <li>Implementing incremental forever strategy for Oracle database backups</li> <li>Automating Oracle database administration, practical examples with Ansible &#8211; with <a href="https://github.com/oravirt?utm_source=rss&utm_medium=rss">Mikael Sandström</a></li> </ul> </li> <li>17-20 October <a href="http://2017.hroug.hr/eng/?utm_source=rss&utm_medium=rss">HrOUG 17 &#8211; Croatian Oracle User Group</a> <ul> <li>Automating Oracle database administration, practical examples with Ansible &#8211; with <a href="https://github.com/oravirt?utm_source=rss&utm_medium=rss">Mikael Sandström</a></li> </ul> </li> <li>21-24 November <a href="https://2017.doag.org/en/program/program/?utm_source=rss&utm_medium=rss">DOAG 17 &#8211; German Oracle User Group</a> <ul> <li>Automating Oracle database administration, practical examples with Ansible &#8211; with <a href="https://github.com/oravirt?utm_source=rss&utm_medium=rss">Mikael Sandström</a></li> </ul> </li> </ul> <div class="feedflare"> <a href="http://feeds.feedburner.com/~ff/ilmarkerm?a=aobkVNZiAI8:VcpqSLeRbaA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ilmarkerm?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ilmarkerm?a=aobkVNZiAI8:VcpqSLeRbaA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ilmarkerm?i=aobkVNZiAI8:VcpqSLeRbaA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ilmarkerm?a=aobkVNZiAI8:VcpqSLeRbaA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ilmarkerm?i=aobkVNZiAI8:VcpqSLeRbaA:V_sGLiPBpWU" border="0"></img></a> </div><img src="http://feeds.feedburner.com/~r/ilmarkerm/~4/aobkVNZiAI8" height="1" width="1" alt=""/> ilmarkerm https://ilmarkerm.eu/blog/?p=373 Wed Jul 19 2017 08:03:04 GMT-0400 (EDT) VMware Workshop : Day 1 http://feedproxy.google.com/~r/TheOracleBaseBlog/~3/_5lO93OjU9E/ <p><a href="https://www.vmware.com/"><img class="alignleft wp-image-7361" src="https://oracle-base.com/blog/wp-content/uploads/2017/07/vmware_and_pure_storage_logo-1.jpg" alt="" width="200" height="65" /></a>Having a late night before an intensive day in a lab is not a great idea. I woke up feeling like the living dead. We got in a bus and were driven a few miles to the <a href="https://www.vmware.com/">VMware</a> office in Cork to start the &#8220;VMware Expert Database Workshop Program Oracle Edition”.</p> <p>The basic agenda for the day was as follows.</p> <ul> <li>&#8220;Introductions and Program Overview&#8221; by <a href="https://twitter.com/dfsulliv">Don Sullivan</a> &amp; <a href="https://twitter.com/itvista">Mohan Potheri</a></li> <li>&#8220;The Basics of vSphere and the SDDC for Oracle&#8221; by <a href="https://twitter.com/Michael_Corey">Mike Corey</a></li> <li>&#8220;VMware Executive Welcome to Cork&#8221; by <a href="https://twitter.com/Karen_Egan01">Karen Egan</a></li> <li>&#8220;Pure Storage Executive Welcome&#8221; by <a href="https://twitter.com/CarlMcQuillan">Carl McQuillan</a></li> <li>VMware vSphere Core &amp; SDDC &#8211; vMotion, The Decoupling of the Server and the Host&#8221; by Valentin Bondzio</li> <li>&#8220;Oracle on VMware &#8216;One Woman&#8217;s Journey'&#8221; by Yvonne Murphy</li> <li>&#8220;Pure Storage &#8211; A Technical Session #1&#8221; by <a href="https://twitter.com/purelyDB">Somu Rajarathinam</a> and Alex Infanzon</li> <li>&#8220;Oracle on vSphere on Pure Storage Cloud based Labs&#8221; with <a href="https://twitter.com/itvista">Mohan Potheri</a>, Dean Bolton, Sudhir Balasubramanian</li> </ul> <p>The whole day was really interactive. We were asking questions and giving opinions throughout the sessions. Between the sessions I was working through a list of questions with various speakers. This was really a combination of trying to learn new stuff, confirm stuff I already know and updating some of my out of date knowledge.</p> <p>In the evening we headed out to dinner and I spent a lot of time talking to Valentin Bondzio and taking notes on my phone. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>We headed back to the hotel and spent a long time continuing the conversations of the day. I was planning on an early night, but if you give me the opportunity to geek out I&#8217;m going to take it, so it was another late night! <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>It was a great first day. I wrote loads of notes and cleared a lot of my questions. Everyone at <a href="https://www.vmware.com/">VMware</a> and <a href="https://www.purestorage.com/">Pure Storage</a> were super helpful, to a big thank you to everyone! I&#8217;m looking forward to tomorrow!</p> <p>Cheers</p> <p>Tim&#8230;</p> <hr style="border-top:black solid 1px" /><a href="https://oracle-base.com/blog/2017/07/19/vmware-workshop-day-1/">VMware Workshop : Day 1</a> was first posted on July 19, 2017 at 7:57 am.<br />©2012 "<a href="http://www.oracle-base.com/blog">The ORACLE-BASE Blog</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.<br /><img src="http://feeds.feedburner.com/~r/TheOracleBaseBlog/~4/_5lO93OjU9E" height="1" width="1" alt=""/> Tim... https://oracle-base.com/blog/?p=7383 Wed Jul 19 2017 02:57:27 GMT-0400 (EDT) DevOps and Webinars- July 19th and July 25th http://dbakevlar.com/2017/07/devops-webinars-july-19th-july-25th/ <div class="pf-content"><p>Doing three or four webinars in a month doesn&#8217;t seem like a big deal until you actually try to do it&#8230;and present at two or three events and make sure you do everything for your job outside of that, too.  Suddenly you find yourself scrambling to keep up, but I&#8217;m known for taking on a few too many things at once&#8230; <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p><a href="http://dbakevlar.com/2017/07/devops-webinars-july-19th-july-25th/137218594482003103d01ca73180564b/" rel="attachment wp-att-6919"><img class="alignnone wp-image-6919" src="https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/07/137218594482003103d01ca73180564b.gif?resize=436%2C244" alt="" data-recalc-dims="1" /></a></p> <p>Tomorrow at I&#8217;ll be presenting at <a href="http://www.pass.org/24hours/2017/summitpreview/About.aspx">24HOP</a>, also known as the 24 Hours of Pass, which is the webinar preview of The Pass Summit conference.  This is a free web event to anyone who<a href="http://www.pass.org/24hours/2017/summitpreview/About.aspx"> registers</a>, so no matter if you&#8217;re Oracle or SQL Server, I greatly recommend to take advantage of this awesome opportunity to get a taste of what&#8217;s coming up from Microsoft&#8217;s annual event this fall in Seattle!<a href="http://dbakevlar.com/2017/07/devops-webinars-july-19th-july-25th/screen-shot-2017-07-18-at-4-00-46-pm/" rel="attachment wp-att-6920"><img class="alignnone size-large wp-image-6920" src="https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-18-at-4.00.46-PM.png?resize=600%2C117" alt="" srcset="https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-18-at-4.00.46-PM.png?resize=1024%2C200 1024w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-18-at-4.00.46-PM.png?resize=300%2C59 300w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-18-at-4.00.46-PM.png?resize=768%2C150 768w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-18-at-4.00.46-PM.png?w=1032 1032w" sizes="(max-width: 600px) 100vw, 600px" data-recalc-dims="1" /></a></p> <p>On July 25th, I&#8217;ll be Delphix will be hosting a webinar with me presenting on <a href="http://pages.delphix.com/DevOps-and-the-DBA_The-Last-Frontier_Registration.html">DevOps for the DBA</a>.  Now this session is different from the one that I&#8217;ll be doing at 24HOP or previously at other events.  I like to continually update and add to my content and this time, I&#8217;m taking direct feedback from these previous sessions and building out the talk to answer those pesky questions the DBA community has been asking.</p> <p><a href="http://dbakevlar.com/2017/07/devops-webinars-july-19th-july-25th/screen-shot-2017-07-18-at-4-08-57-pm/" rel="attachment wp-att-6921"><img class="alignnone size-large wp-image-6921" src="https://i2.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-18-at-4.08.57-PM.png?resize=600%2C107" alt="" srcset="https://i2.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-18-at-4.08.57-PM.png?resize=1024%2C183 1024w, https://i2.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-18-at-4.08.57-PM.png?resize=300%2C54 300w, https://i2.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-18-at-4.08.57-PM.png?resize=768%2C137 768w, https://i2.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-18-at-4.08.57-PM.png?w=1522 1522w, https://i2.wp.com/dbakevlar.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-18-at-4.08.57-PM.png?w=1200 1200w" sizes="(max-width: 600px) 100vw, 600px" data-recalc-dims="1" /></a></p> <p>Needless to say, if you&#8217;re a DBA, these are two events that are both free and worthwhile in the next two weeks for free online presentations you can gain more knowledge from!</p> <p>&nbsp;</p> <p>&nbsp;</p> <!-- Easy Plugin for AdSense Unfiltered [count: 3 is not less than 3] --></div><br><br><img src="https://i2.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/ico-tag.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> Tags:&nbsp;&nbsp;<a href="http://dbakevlar.com/tag/delphix/" rel="tag">Delphix</a>, <a href="http://dbakevlar.com/tag/devops/" rel="tag">DevOps</a>, <a href="http://dbakevlar.com/tag/webinars/" rel="tag">Webinars</a><br><br><div style="width:100%"><table align="left" width="100%" cellspacing="0" cellpadding="0" bgcolor="#f1f1f1" border="0px;"> <tbody> <tr bgcolor="#ffffff"><td align="center" width="17%" valign="top"> <span class="sb_title">Del.icio.us</span><br> <a href="http://del.icio.us/post?url=http://dbakevlar.com/2017/07/devops-webinars-july-19th-july-25th/&title=DevOps and Webinars- July 19th and July 25th"> <img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/delicious.gif?w=600" border="0" align="absmiddle" data-recalc-dims="1"> </a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">Facebook</span><br> <a href="http://www.facebook.com/share.php?u=http://dbakevlar.com/2017/07/devops-webinars-july-19th-july-25th/"><img src="https://i0.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/facebook_icon.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">eetThis</span><br> <a href="http://twitthis.com/twit?url=http://dbakevlar.com/2017/07/devops-webinars-july-19th-july-25th/&title=DevOps and Webinars- July 19th and July 25th"><img src="https://i2.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tweet.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">Digg</span><br> <a href="http://digg.com/submit?phase=2&url=http://dbakevlar.com/2017/07/devops-webinars-july-19th-july-25th/&title=DevOps and Webinars- July 19th and July 25th"><img src="https://i0.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/digg.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">StumbleUpon</span><br> <a href="http://www.stumbleupon.com/submit?url=http://dbakevlar.com/2017/07/devops-webinars-july-19th-july-25th/&title=DevOps and Webinars- July 19th and July 25th"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/stumble.gif?w=600" border="0" align="absmiddle" data-recalc-dims="1"></a> </td></tr> </tbody></table></div><br><div style="clear:both"></div><div style="background:#EEEEEE; padding:0px 0px 0px 15px; margin:10px 0px 0px 0px;"><div style="padding:5px 0px 5px 0px;"><b>Comments:</b>&nbsp;&nbsp;<a href="http://dbakevlar.com/2017/07/devops-webinars-july-19th-july-25th/#respond">0 (Zero), Be the first to leave a reply!</a></div><br><div style="clear:both"></div><div style="padding:13px 0px 5px 0px;"><span style="border-bottom:1px dashed #003399;padding-bottom:4px;"><strong>You might be interested in this:</strong></span>&nbsp;&nbsp;<br><ul style="margin:0; padding:0; padding-top:10px; padding-bottom:5px;"><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2011/01/rmoug-2011-looking-good/" >RMOUG 2011- Looking Good!</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2012/03/my-review-of-rei-monorail-sling-bag/" >My Review of REI Monorail Sling Bag</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2012/10/jessica-ridgeway/" >Jessica Ridgeway</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2014/12/the-right-tools-for-the-job/" >The Right Tools for the Job</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=600" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2010/01/the-blogger-newbie-quest/" >The Blogger Newbie Quest</a></li></ul></div></div><hr style="color:#EBEBEB" /><small>Copyright © <a href="http://dbakevlar.com">DBA Kevlar</a> [<a href="http://dbakevlar.com/2017/07/devops-webinars-july-19th-july-25th/">DevOps and Webinars- July 19th and July 25th</a>], All Right Reserved. 2017.</small><br><p>The post <a rel="nofollow" href="http://dbakevlar.com/2017/07/devops-webinars-july-19th-july-25th/">DevOps and Webinars- July 19th and July 25th</a> appeared first on <a rel="nofollow" href="http://dbakevlar.com">DBA Kevlar</a>.</p> dbakevlar http://dbakevlar.com/?p=6918 Tue Jul 18 2017 18:15:35 GMT-0400 (EDT) Clean up qcow2 in Docker on MacBook http://dbaontap.com/2017/07/18/clean-qcow2-docker-macbook/ <p>I really enjoy figuring out stuff to do with DOCKER, but I recently tweeted the following: Why you ask? Well, there is this file, Docker.qcow2 located right here: ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2 on my MacBook Pro that consumes all of the remaining space I have on my hard drive, and SSD&#8217;s ain&#8217;t cheap.  I&#8217;m sure I need to ...</p> <p>The post <a rel="nofollow" href="http://dbaontap.com/2017/07/18/clean-qcow2-docker-macbook/">Clean up qcow2 in Docker on MacBook</a> appeared first on <a rel="nofollow" href="http://dbaontap.com">dbaonTap</a>.</p> DB http://dbaontap.com/?p=1361 Tue Jul 18 2017 16:50:51 GMT-0400 (EDT) Oracle Forms 12c Java Web Start only shows Splash Screen http://dirknachbar.blogspot.com/2017/07/oracle-forms-12c-java-web-start-only.html I am currently working in a project for migrating several Oracle Forms 11g Applications to Oracle Forms 12c.<br />One requirement within this project is to use Oracle Forms 12c with Java Web Start in order to get rid of any kind of browser dependencies and to be independent from the classical Java Applet.<br /><br />The configuration of Java Web Start usage within the formsweb.cfg is really straight forward and simple, just follow the Oracle Documentation.<br /><br />The first test failed as usual :-) I was copying the jnlp file to my local desktop, got a JDK 1.8.0 Update 121 on my local desktop and run following command from the command line:<br /><br /><pre class="brush:bash">cd $JAVA_HOME/bin<br />./javaws /home/oracle/test_webstart.jnlp<br /></pre><br /><br />What happened was that just the Java Logo Splash Screen showed up for a second and disappeared ...<br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-wmR70HJF_ZM/WW4e_PClFNI/AAAAAAAAAoE/-BpD0YMBPDwPfMXI-IXai85lAHuRkKbKACLcBGAs/s1600/java_logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="140" data-original-width="319" height="176" src="https://3.bp.blogspot.com/-wmR70HJF_ZM/WW4e_PClFNI/AAAAAAAAAoE/-BpD0YMBPDwPfMXI-IXai85lAHuRkKbKACLcBGAs/s400/java_logo.png" width="400" /></a></div><br />Cool, I was trying the same on different laptops, every time the same result.<br /><br />After some investigations, I found the solution, simply open your Java Control Panel (Windows User: System Control and search for Java / Linux User: start from $JAVA_HOME/bin the binary jcontrol / Mac Users: Open System Preferences and click Java) and click the button "Settings..." under the Section "General / Temporary Internet Files"<br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-Gy4MUSi9DxA/WW4f9IqRw0I/AAAAAAAAAoI/vTy527xCnAIpGPyhrSSj-4qCV3NjX1x_gCLcBGAs/s1600/jcontrol_01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="559" data-original-width="579" height="382" src="https://4.bp.blogspot.com/-Gy4MUSi9DxA/WW4f9IqRw0I/AAAAAAAAAoI/vTy527xCnAIpGPyhrSSj-4qCV3NjX1x_gCLcBGAs/s400/jcontrol_01.png" width="400" /></a></div><br />Check if the Checkbox in front of "Keep temporary files on my computer." is activated.<br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-JtWI0ghkjkk/WW4gRrz_rYI/AAAAAAAAAoM/GOLo02crWnQ5JaTMHioDq4mChPjEFqiNwCLcBGAs/s1600/jcontrol_02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="401" data-original-width="510" height="313" src="https://3.bp.blogspot.com/-JtWI0ghkjkk/WW4gRrz_rYI/AAAAAAAAAoM/GOLo02crWnQ5JaTMHioDq4mChPjEFqiNwCLcBGAs/s400/jcontrol_02.png" width="400" /></a></div><br /><br />Mark the Checkbox in front of "Keep temporary files on my computer.", Click OK and in the Main Java Control Panel click the button "Apply".<br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-fcDP8oNvk2E/WW4hnYnZqdI/AAAAAAAAAoQ/PH5xEL9HUikPL5aZfXfViCejkqf3xu7MACLcBGAs/s1600/jcontrol_03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="401" data-original-width="510" height="313" src="https://1.bp.blogspot.com/-fcDP8oNvk2E/WW4hnYnZqdI/AAAAAAAAAoQ/PH5xEL9HUikPL5aZfXfViCejkqf3xu7MACLcBGAs/s400/jcontrol_03.png" width="400" /></a></div><br /><br />Now your Oracle Forms should work as Java Web Start Application :-)<br /><br /><br /> Dirk Nachbar tag:blogger.com,1999:blog-4344684978957885806.post-2049938300040290852 Tue Jul 18 2017 10:59:00 GMT-0400 (EDT) VirtualBox 5.1.24 http://feedproxy.google.com/~r/TheOracleBaseBlog/~3/ovGEYZp94WQ/ <p><img class="alignleft size-full wp-image-4959" src="https://oracle-base.com/blog/wp-content/uploads/2015/05/virtualbox.jpg" alt="" width="129" height="145" /><a href="https://www.virtualbox.org/">VirtualBox</a> 5.1.24 has been released.</p> <p>The <a href="https://www.virtualbox.org/wiki/Downloads">downloads</a> and <a href="https://www.virtualbox.org/wiki/Changelog#v24">changelog</a> are in the usual places.</p> <p>I&#8217;ve done an installation on my laptop (macOS Sierra) and it worked fine. I probably won&#8217;t get to do it on Windows and Oracle Linux hosts until the weekend.</p> <p>Cheers</p> <p>Tim&#8230;</p> <hr style="border-top:black solid 1px" /><a href="https://oracle-base.com/blog/2017/07/18/virtualbox-5-1-24/">VirtualBox 5.1.24</a> was first posted on July 18, 2017 at 2:20 pm.<br />©2012 "<a href="http://www.oracle-base.com/blog">The ORACLE-BASE Blog</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.<br /><img src="http://feeds.feedburner.com/~r/TheOracleBaseBlog/~4/ovGEYZp94WQ" height="1" width="1" alt=""/> Tim... https://oracle-base.com/blog/?p=7380 Tue Jul 18 2017 09:20:41 GMT-0400 (EDT) Machine Learning in Oracle Database – Classification of Conference Abstracts based on Text Analysis https://technology.amis.nl/2017/07/18/machine-learning-in-oracle-database-classification-of-conference-abstracts-based-on-text-analysis/ <p>Machine Learning is hot. The ability to have an automated system predict, classify, recommend and even decide based on models derived from past experience is quite attractive. And with the number of obvious applications of machine learning &#8211; Netflix and Amazon recommendations, intelligent chat bots, license plate recognition in parking garages, spam filters in email servers &#8211; the interest further grows. Who does not want to apply machine learning?</p> <p>This article shows that the Oracle Database (platform) &#8211; with the Advanced Analytics option &#8211; is perfectly capable of doing ‘machine learning’. And has been able to do such learning for many years. From the comfort of their SQL &amp; PL/SQL zone, database developers can play data scientists. The challenge is as follows:</p> <blockquote> <p>For the nlOUG Tech Experience 2017 conference, we have a set of about 90 abstracts in our table (title and description). 80 of these abstracts have been classified into the conference tracks, such as DBA, Development, BI &amp; Warehousing, Web &amp; Mobile, Integration &amp; Process. For about 10 abstracts, this classification has not yet been done &#8211; they do not currently have an assigned track. We want to employ machine learning to determine the track for these unassigned abstracts.</p> </blockquote> <p>The steps we will go through to solve this challenge:</p> <li> <p>Create a database table with the conference abstracts &#8211; at least columns title, abstract and track</p> <li> <p>Create an Oracle Text policy object</p> <li> <p>Specify the model configuration settings </p> <li> <p>Create the model using the model settings and text transformation instructions to <code>DBMS_DATA_MINING.CREATE_MODEL</code>.</p> <li> <p>Test the model/Try out the model &#8211; in our case against the currently unassigned conference abstracts</p> </li> <p>The volume of code required for this is very small (less than 30 lines of PL/SQL). The time it takes to go through this is very limited as well. Let’s see how this works. Note: the code is in a GitHub repository: <a title="https://github.com/lucasjellema/theArtOfMachineLearning" href="https://github.com/lucasjellema/theArtOfMachineLearning">https://github.com/lucasjellema/theArtOfMachineLearning</a> . </p> <p>Note: from the Oracle Database documentation on text mining: </p> <blockquote> <p>Text mining is the process of applying data mining techniques to <a></a><a></a>text terms, also called text features or tokens. Text terms are words or groups of words that have been extracted from text documents and assigned numeric weights. Text terms are the fundamental unit of text that can be manipulated and analyzed. </p> <p><a></a>Oracle Text is a Database technology that provides term extraction, word and theme searching, and other utilities for querying text. When columns of text are present in the training data, Oracle Data Mining uses Oracle Text utilities and term weighting strategies to transform the text for mining. Oracle Data Mining passes configuration information supplied by you to Oracle Text and uses the results in the model creation process.</p> </blockquote> <h3>Create a database table with the conference abstracts</h3> <p>I received the data in an Excel spreadsheet. I used SQL Developer to import the file and create a table from it. I then exported the table to a SQL file with DDL and DML statements.</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-41.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-41.png?resize=686%2C322&#038;ssl=1" data-recalc-dims="1"></a></p> <p>&nbsp;</p> <h3>Create an Oracle Text policy object</h3> <p>An Oracle Text policy specifies how text content must be interpreted. You can provide a text policy to govern a model, an attribute, or both the model and individual attributes.</p> <pre class="brush: sql; title: ; notranslate"> DECLARE l_policy VARCHAR2(30):='conf_abstrct_mine_policy'; l_preference VARCHAR2(30):='conference_abstract_lexer'; BEGIN ctx_ddl.create_preference(l_preference, 'BASIC_LEXER'); ctx_ddl.create_policy(l_policy, lexer =&gt; l_preference); END; </pre> <p>Note: the database user you use for this requires two system privileges from the DBA: <em>grant execute on ctx_ddl</em> and <em>grant create mining model</em> </p> <h3>Specify the text mining model configuration settings </h3> <p>When the Data Mining&nbsp; model is created with a PL/SQL command, we need to specify the name of a table that holds key-value pairs (columns setting_name and setting value) with the settings that should be applied. </p> <p>Create this settings table.</p> <pre class="brush: sql; title: ; notranslate"> CREATE TABLE text_mining_settings ( setting_name VARCHAR2(30), setting_value VARCHAR2(4000) ); </pre> <p>Choose the algorithm to use for classification &#8211; in this case Naïve Bayes. Indicate the Oracle Text policy to use &#8211; in this case conf_abstrct_mine_policy- through INSERT statements. </p> <pre class="brush: sql; title: ; notranslate"> DECLARE l_policy VARCHAR2(30):='conf_abstrct_mine_policy'; BEGIN -- Populate settings table INSERT INTO text_mining_settings VALUES ( dbms_data_mining.algo_name, dbms_data_mining.algo_naive_bayes ); INSERT INTO text_mining_settings VALUES ( dbms_data_mining.prep_auto, dbms_data_mining.prep_auto_on ); INSERT INTO text_mining_settings VALUES ( dbms_data_mining.odms_text_policy_name, l_policy ); COMMIT; END; </pre> <p>&nbsp;</p> <h3>Pass the model settings and text transformation instructions to <code>DBMS_DATA_MINING.CREATE_MODEL</code></h3> <p>I do not like the elaborate, unintuitive syntax required for creating model. I do not like the official Oracle Documentation around this. It is not as naturally flowing as it should be, the pieces do not fit together nicely. It feels a little like the SQL Model clause &#8211; something that never felt quite right to me.</p> <p>Well, this is how it is. To specify which columns must be treated as text (configure text attribute) and, optionally, provide text transformation instructions for individual attributes, we need to use a dbms_data_mining_transform.TRANSFORM_LIST object to hold all columns and/or SQL expressions that contribute to the identification of each record. The attribute specification is a field (attribute_spec) in a transformation record (transform_rec). Transformation records are components of transformation lists (xform_list) that can be passed to CREATE_MODEL. You can view attribute specifications in the data dictionary view ALL_MINING_MODEL_ATTRIBUTES.</p> <p>Here is how we specify the text attribute abstract: </p> <p>dbms_data_mining_transform.SET_TRANSFORM( xformlist, &#8216;abstract&#8217;, NULL, &#8216;abstract&#8217;, NULL, &#8216;TEXT(TOKEN_TYPE:NORMAL)&#8217;);</p> <p>where xformlist is a local PL/SQL variable of type dbms_data_mining_transform.TRANSFORM_LIST.</p> <p>In the call to create_model, we specify the name of the new model, the table (of view) against which the model is to be built, the target column name for which the model should predict the values, the name of the database table with the key value pairs holding the settings for the model and the list of text attributes:</p> <pre class="brush: sql; title: ; notranslate"> DECLARE xformlist dbms_data_mining_transform.TRANSFORM_LIST; BEGIN -- add column abstract as a column to parse and use for text mining dbms_data_mining_transform.SET_TRANSFORM( xformlist, 'abstract', NULL, 'abstract', NULL, 'TEXT(TOKEN_TYPE:NORMAL)'); dbms_data_mining_transform.SET_TRANSFORM( xformlist, 'title', NULL, 'title', NULL, 'TEXT(TOKEN_TYPE:NORMAL)'); DBMS_DATA_MINING.CREATE_MODEL( model_name =&gt; 'ABSTRACT_CLASSIFICATION' , mining_function =&gt; dbms_data_mining.classification , data_table_name =&gt; 'OGH_TECHEXP17' , case_id_column_name =&gt; 'title' , target_column_name =&gt; 'track' , settings_table_name =&gt; 'text_mining_settings' , xform_list =&gt; xformlist); END; </pre> <p>Oracle Data Miner needs to have one attribute that identifies each records; the name of the column to use for this is passed as the case id.</p> <p>&nbsp;</p> <h3>Test the model/Try out the model &#8211; in our case against the currently unassigned conference abstracts</h3> <p>Now that the model has been created, we can make use of it for predicting the value of the target column for selected records.</p> <p>First, let’s have the model classify the abstracts without track:</p> <pre class="brush: sql; title: ; notranslate"> SELECT title , PREDICTION(ABSTRACT_CLASSIFICATION USING *) AS predicted_target , abstract FROM OGH_TECHEXP17 where track is null </pre> <p>&nbsp;</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-42.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-42.png?resize=702%2C259&#038;ssl=1" data-recalc-dims="1"></a></p> <p>We can use the model also to classify data on the fly, like this (using two abstracts from a different conference that are not stored in the database at all):</p> <pre class="brush: sql; title: ; notranslate"> with sessions_to_judge as ( select 'The Modern JavaScript Server Stack' title , 'The usage of JavaScript on the server is rising, and Node.js has become popular with development shops, from startups to big corporations. With its asynchronous nature, JavaScript provides the ability to scale dramatically as well as the ability to drive server-side applications. There are a number of tools that help with all aspects of browser development: testing, packaging, and deployment. In this session learn about these tools and discover how you can incorporate them into your environment.' abstract from dual UNION ALL select 'Winning Hearts and Minds with User Experience' title , 'Not too long ago, applications could focus on feature functionality alone and be successful. Today, they must also be beautiful, responsive, and intuitive. In other words, applications must be designed for user experience (UX) because when they are, users are far more productive, more forgiving, and generally happier. Who doesnt want that? In this session learn about the psychology behind what makes a great UX, discuss the key principles of good design, and learn how to apply them to your own projects. Examples are from Oracle Application Express, but these principles are valid for any technology or platform. Together, we can make user experience a priority, and by doing so, win the hearts and minds of our users. We will use Oracle JET as well as ADF and some mobile devices and Java' abstract from dual ) SELECT title , PREDICTION(ABSTRACT_CLASSIFICATION USING *) AS predicted_target , abstract FROM sessions_to_judge </pre> <p>&nbsp;</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-43.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-43.png?resize=604%2C299&#038;ssl=1" data-recalc-dims="1"></a></p> <p>Both abstracts are assigned tracks within the boundaries of the model. If these abstracts were submitted to the Tech Experience 2017 conference, they would have been classified like this. It would be interesting to see which changes to make to for example the second abstract on user experience in order to have it assigned to the more fitting Web &amp; Mobile track.</p> <p>One final test: find all abstracts for which the model predicts a different track than the track that was actually assigned:</p> <pre class="brush: sql; title: ; notranslate"> select * from ( SELECT title , track , PREDICTION(ABSTRACT_CLASSIFICATION USING *) AS predicted_track FROM OGH_TECHEXP17 where track is not null ) where track != predicted_track </pre> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-44.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-44.png?resize=603%2C276&#038;ssl=1" data-recalc-dims="1"></a></p> <p>Seems not unreasonable to have a second look at this track assignment.</p> <h2>Resources</h2> <p>Source code in GitHub: <a title="https://github.com/lucasjellema/theArtOfMachineLearning" href="https://github.com/lucasjellema/theArtOfMachineLearning">https://github.com/lucasjellema/theArtOfMachineLearning</a>&nbsp;</p> <p>Oracle Advanced Analytics Database Option: <a title="https://www.oracle.com/database/advanced-analytics/index.html" href="https://www.oracle.com/database/advanced-analytics/index.html">https://www.oracle.com/database/advanced-analytics/index.html</a>&nbsp;</p> <p>My big inspiration for this article:&nbsp; Introduction to Machine Learning for Oracle Database Professionals by Alex Gorbachev &#8211; <a title="https://www.slideshare.net/alexgorbachev/introduction-to-machine-learning-for-oracle-database-professionals" href="https://www.slideshare.net/alexgorbachev/introduction-to-machine-learning-for-oracle-database-professionals">https://www.slideshare.net/alexgorbachev/introduction-to-machine-learning-for-oracle-database-professionals</a></p> <p>Oracle Documentation on Text Mining: <a title="https://docs.oracle.com/database/122/DMPRG/creating-model-that-includes-text-mining.htm#DMPRG604" href="https://docs.oracle.com/database/122/DMPRG/creating-model-that-includes-text-mining.htm#DMPRG604">https://docs.oracle.com/database/122/DMPRG/creating-model-that-includes-text-mining.htm#DMPRG604</a></p> <p>Toad World article on Explicit Semantic Analysis setup using SQL and PL/SQL: <a title="https://www.toadworld.com/platforms/oracle/b/weblog/archive/2017/01/16/explicit-semantic-analysis-setup-using-sql-and-pl-sql" href="https://www.toadworld.com/platforms/oracle/b/weblog/archive/2017/01/16/explicit-semantic-analysis-setup-using-sql-and-pl-sql">https://www.toadworld.com/platforms/oracle/b/weblog/archive/2017/01/16/explicit-semantic-analysis-setup-using-sql-and-pl-sql</a></p> <p>Sentiment Analysis Using Oracle Data Miner &#8211; OTN article by Brendan Tierney &#8211; <a title="http://www.oracle.com/technetwork/articles/bi/odm-sentiment-analysis-tierney-2416652.html" href="http://www.oracle.com/technetwork/articles/bi/odm-sentiment-analysis-tierney-2416652.html">http://www.oracle.com/technetwork/articles/bi/odm-sentiment-analysis-tierney-2416652.html</a>&nbsp;</p> <p>My own blogs on Oracle Database Data Mining from PL/SQL &#8211; from long, long ago: <a title="https://technology.amis.nl/2006/06/29/oracle-data-mining-from-sql-and-plsql/" href="https://technology.amis.nl/2006/06/29/oracle-data-mining-from-sql-and-plsql/" target="_blank">Oracle Datamining from SQL and PL/SQL</a> and <a href="https://technology.amis.nl/2004/10/16/hidden-plsql-gem-in-10g-dbms_frequent_itemset-for-plsql-based-data-mining/" target="_blank">Hidden PL/SQL Gem in 10g: DBMS_FREQUENT_ITEMSET for PL/SQL based Data Mining</a></p> <p>The post <a rel="nofollow" href="https://technology.amis.nl/2017/07/18/machine-learning-in-oracle-database-classification-of-conference-abstracts-based-on-text-analysis/">Machine Learning in Oracle Database &#8211; Classification of Conference Abstracts based on Text Analysis</a> appeared first on <a rel="nofollow" href="https://technology.amis.nl">AMIS Oracle and Java Blog</a>.</p> Lucas Jellema https://technology.amis.nl/?p=45359 Tue Jul 18 2017 02:53:43 GMT-0400 (EDT) VMware Workshop : The Journey Begins https://oracle-base.com/blog/2017/07/18/vmware-workshop-the-journey-begins/ <p><img class="alignleft wp-image-7361" src="https://oracle-base.com/blog/wp-content/uploads/2017/07/vmware_and_pure_storage_logo-1.jpg" alt="" width="200" height="65" />I <a href="https://oracle-base.com/blog/2017/07/11/vmware-expert-database-workshop-program-oracle-edition/">mentioned</a> a few days ago I would be attending the “VMware Expert Database Workshop Program Oracle Edition”. That trip started today.</p> <p>I got up at silly o&#8217;clock to get my taxi to the airport. As usual I had some problems sleeping, worrying about potentially missing my early flight. Thanks brain!</p> <p>The airport was really crowded. There were queues to the queues to the queues. I find it really irritating when you tweet about it and get a, &#8220;I&#8217;m sorry, we really care!&#8221;, type of message. Nonsense! If you cared you would staff accordingly! You know the schedule of the planes. Sort yourself out!</p> <p>One of my colleagues happened to be on the same plane, on his way to see family, but he arrived at the airport a little later than me, so didn&#8217;t make it through to the gate until boarding time. That was a pity as I wanted to impress his wife with my witty repartee, whilst he squirmed waiting for me to start swearing and generally being obnoxious. Despite views to the contrary, I can behave when I need to. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>The flight to Cork was only about 70 minutes, so it was shorter than the queues I had already stood in!</p> <p>Once at Cork I was met by the driver and a few minutes later <a href="https://fritshoogland.wordpress.com/">Frits Hoogland</a> turned up. We headed to the hotel and sat down in the lounge chatting about Docker, Ansible and Vagrant while we waited for our rooms to be sorted. We arrived hours before the official check-in. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> After a while we were joined by <a href="https://www.performing-databases.com/en/">Martin Klier</a> and the conversation continued.</p> <p>Once our rooms were ready we headed up to them for a while, before getting together in the evening to meet everyone and get some food. After the food we stayed up in the hotel lobby until about midnight chatting about tech. It was good fun, but probably a bad idea since we had an early start planned for the next day! <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>Cheers</p> <p>Tim&#8230;</p> <hr style="border-top:black solid 1px" /><a href="https://oracle-base.com/blog/2017/07/18/vmware-workshop-the-journey-begins/">VMware Workshop : The Journey Begins</a> was first posted on July 18, 2017 at 7:33 am.<br />©2012 "<a href="http://www.oracle-base.com/blog">The ORACLE-BASE Blog</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.<br /> Tim... https://oracle-base.com/blog/?p=7376 Tue Jul 18 2017 02:33:16 GMT-0400 (EDT) Virtualization on Windows 10 with Virtual Box, Hyper-V and Docker Containers https://technology.amis.nl/2017/07/17/virtualization-on-windows-10-with-virtual-box-hyper-v-and-docker-containers/ <p>Recently I started working on a brand new HP ZBook 15-G3 with Windows 10 Pro. And I immediately tried to return to the state I had my previous Windows 7 laptop in: Oracle Virtual Box for running most software in virtual machines, using Docker Machine (and Kubernetes) for running some things in Docker Containers and using Vagrant to spin up some of these containers and VMs.</p> <p>I quickly ran into some issues that made me reconsider – and realize that some things are different on Windows 10. In this article a brief summary of my explorations and findings.</p> <ul> <li>Docker for Windows provides near native support for running Docker Containers; the fact that under the covers there is still a Linux VM running is almost hidden and from command line (Powershell) and a GUI I have easy access to the containers. I do  not believe though that I can run containers that expose a GUI – except through a VNC client</li> <li>Docker for Windows leverages Hyper-V. Hyper-V lets you run an operating system or computer system as a virtual machine on Windows. (Hyper-V is built into Windows as an optional feature; it needs to be explicitly enabled) Hyper-V on Windows is very similar to VirtualBox</li> <li>In order to use Hyper-V or Virtual Box, hardware virtualization must be enabled in the system’s BIOS</li> <li>And the one finding that took longest to realize: Virtual Box will not work if Hyper-V is enabled. So the system at any one time can only run Virtual Box or Hyper-V (and Docker for Windows), not both. Switching Hyper-V support on and off is fairly easy, but it does require a reboot</li> </ul> <p>&nbsp;</p> <h3>Quick tour of Windows Hyper-V</h3> <p>Creating a virtual machine is very easy. A good example is provided in this article: <a title="https://blog.couchbase.com/hyper-v-run-ubuntu-linux-windows/" href="https://blog.couchbase.com/hyper-v-run-ubuntu-linux-windows/">https://blog.couchbase.com/hyper-v-run-ubuntu-linux-windows/</a> that describes how a Hyper-V virtual machine is created with Ubuntu Linux.</p> <p>I went through the following steps to create a Hyper-V VM running Fedora 26. It was easy enough. However, the result is not as good in terms of the GUI experience as I had hoped it would be. Some of my issues: low resolution, only 4:3 aspect ratio, I cannot get out of full screen mode (that requires CTRL-ALT-BREAK and my keyboard does not have a break key. All alternative I have found do not work for me.</p> <ul> <li style="list-style-type: none;"> <ul> <li>Download ISO image for Fedora 26 (Fedora-Workstation-Live-x86_64-26-1.5.iso using Fedora Media Writer or from <a title="https://fedora.mirror.wearetriple.com/linux/releases/26/Workstation/x86_64/iso/" href="https://fedora.mirror.wearetriple.com/linux/releases/26/Workstation/x86_64/iso/">https://fedora.mirror.wearetriple.com/linux/releases/26/Workstation/x86_64/iso/</a>)</li> <li>Enable Virtualization in BIOS</li> <li>Enable Hyper-V (First, open Control Panel. Next, go to Programs. Then, click “Turn Windows features on or off”. Finally, locate Hyper-V and click the checkbox (if it isn’t already checked))</li> <li>Run Hyper-V Manager – click on search, type Hype… and click on Hype-V Manager<br /> <a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-30.png?ssl=1"><img style="margin: 0px; display: inline; background-image: none;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-30.png?resize=244%2C201&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></li> <li>Create Virtual Switch – a Network Adapter that will allow the Virtual Machine to communicate to the world<br /> <a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-31.png?ssl=1"><img style="margin: 0px; display: inline; background-image: none;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-31.png?resize=244%2C233&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></li> <li>Create Virtual Machine – specify name, size and location of virtual hard disk (well, real enough inside he VM, virtual on your host), size of memory, select the network switch (created in the previous step), specify the operating system and the ISO while where it will be installed from<br /> <a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-32.png?ssl=1"><img style="margin: 0px; display: inline; background-image: none;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-32.png?resize=244%2C164&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></li> <li>Start the virtual machine and connect to it. It will boot and allow you to run through the installation procedure</li> <li>Potentially change the screen resolution used in the VM. That is not so simple: see this article for an instruction: <a title="https://www.netometer.com/blog/?p=1663" href="https://www.netometer.com/blog/?p=1663">https://www.netometer.com/blog/?p=1663</a> Note: this is one of the reasons why I am not yet a fan of Hyper-V</li> <li>Restart the VM an connect to it; (note: you may have to eject the ISO file from the virtual DVD player, as otherwise the machine could boot again from the ISO image instead of the now properly installed (virtual) hard disk<br /> <a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-33.png?ssl=1"><img style="margin: 0px; display: inline; background-image: none;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-33.png?resize=244%2C193&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></li> </ul> </li> </ul> <p><em>References</em></p> <p>Article that explains how to create a Hyper-V virtual machine that runs Ubuntu (including desktop): <a title="https://blog.couchbase.com/hyper-v-run-ubuntu-linux-windows/" href="https://blog.couchbase.com/hyper-v-run-ubuntu-linux-windows/">https://blog.couchbase.com/hyper-v-run-ubuntu-linux-windows/</a></p> <p>Microsoft article on how to use local resources (USB, Printer) inside Hyper-V virtual machine: <a title="https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/learn-more/Use-local-resources-on-Hyper-V-virtual-machine-with-VMConnect" href="https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/learn-more/Use-local-resources-on-Hyper-V-virtual-machine-with-VMConnect">https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/learn-more/Use-local-resources-on-Hyper-V-virtual-machine-with-VMConnect</a></p> <p>Microsoft documentation: introduction of Hypervisor Hyper-v on Windows 10: <a title="https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/about/" href="https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/about/">https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/about/</a></p> <p>Two article on converting Virtual Box VM images to Hyper-V: <a title="https://cloudbase.it/convert-virtualbox-to-hyper-v/" href="https://cloudbase.it/convert-virtualbox-to-hyper-v/">https://cloudbase.it/convert-virtualbox-to-hyper-v/</a> and (better) <a title="https://www.groovypost.com/howto/migrate-virtual-box-vms-windows-10-hyper-v/" href="https://www.groovypost.com/howto/migrate-virtual-box-vms-windows-10-hyper-v/">https://www.groovypost.com/howto/migrate-virtual-box-vms-windows-10-hyper-v/</a></p> <p>And: how to create one’s own PC into a Hyper-V VM: <a title="http://www.online-tech-tips.com/free-software-downloads/convert-pc-into-virtual-machine/" href="http://www.online-tech-tips.com/free-software-downloads/convert-pc-into-virtual-machine/">http://www.online-tech-tips.com/free-software-downloads/convert-pc-into-virtual-machine/</a></p> <p>&nbsp;</p> <h3>Rapid intro to Docker on Windows</h3> <p>Getting going with Docker on Windows is surprisingly simple and pleasant. Just install Docker for Windows (see for example article for instructions: <a title="https://www.htpcbeginner.com/install-docker-on-windows-10/" href="https://www.htpcbeginner.com/install-docker-on-windows-10/">https://www.htpcbeginner.com/install-docker-on-windows-10/</a> ). Make sure that Hyper-V is enabled – because Docker for Windows leverages Hyper-V to run a Linux VM: the MobyLinuxVM that you see the details for in the next figure.</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/SNAGHTMLcb5d37.png?ssl=1"><img style="margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" title="SNAGHTMLcb5d37" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/SNAGHTMLcb5d37_thumb.png?resize=702%2C466&#038;ssl=1" alt="SNAGHTMLcb5d37" border="0" data-recalc-dims="1" /></a></p> <p>&nbsp;</p> <p>At this point you can interact with Docker from the Powershell command line – simply type docker ps, docker run, docker build and other docker commands on your command line. To just run containers based on images – local or in public or private registries – you can use the Docker GUI Kitematic. It is a separate install action &#8211; &#8211; that is largely automated as is described here  <a title="https://www.htpcbeginner.com/install-kitematic-on-windows/" href="https://www.htpcbeginner.com/install-kitematic-on-windows/">https://www.htpcbeginner.com/install-kitematic-on-windows/</a> –to get Kitematic installed. That is well worth the extremely small trouble it is.</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-34.png?ssl=1"><img style="margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-34.png?resize=395%2C294&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>From Kitematic, you have a graphical overview of your containers as well as an interactive UI for starting containers, configuring them, inspecting them and interacting with them. All things you can do from the command line – but so much simpler.</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-35.png?ssl=1"><img style="margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-35.png?resize=666%2C398&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>In this example, I have started a container based on the ubuntu-xfce-nvc image (see <a title="https://hub.docker.com/r/consol/ubuntu-xfce-vnc/" href="https://hub.docker.com/r/consol/ubuntu-xfce-vnc/">https://hub.docker.com/r/consol/ubuntu-xfce-vnc/</a>) which runs the Ubuntu Linux distribution with &#8220;headless&#8221; VNC session, Xfce4 UI and preinstalled Firefox and Chrome browser.</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-36.png?ssl=1"><img style="margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-36.png?resize=650%2C419&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>The Kitematic IP &amp; Ports tab specify that port 5901 – the VNC port – is mapped to port 32769 on the host (my Windows 10 laptop). I can run the MobaXterm tool and open a VNC session with it, fir 127.0.0.1 at port 32769. This allows me to remotely (or at least outside of the container) see the GUI for the Ubuntu desktop:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-37.png?ssl=1"><img style="margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" title="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-37.png?resize=649%2C348&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Even though it looks okay and it is pretty cool that I can graphically interact with the container, it is not a very good visual experience – especially when things start to move around. Docker for Windows is really best for headless programs that run in the background.</p> <p>For quickly trying out Docker images and for running containers in the background – for example with a MongoDB database, an Elastic Search Index and a Node.JS or nginx web server – this seems to be a very usable way of working.</p> <p><em>References</em></p> <p>Introducing Docker for Windows: <a title="https://docs.docker.com/docker-for-windows/" href="https://docs.docker.com/docker-for-windows/">https://docs.docker.com/docker-for-windows/</a> Documentation</p> <p>Download Docker for Windows Community Edition: <a title="https://www.docker.com/community-edition#/download" href="https://www.docker.com/community-edition#/download">https://www.docker.com/community-edition#/download</a></p> <p>Article on installation for Kitematic – the GUI for Docker for Windows: <a title="https://www.htpcbeginner.com/install-kitematic-on-windows/" href="https://www.htpcbeginner.com/install-kitematic-on-windows/">https://www.htpcbeginner.com/install-kitematic-on-windows/</a></p> <p>Download MobaXterm: <a title="http://mobaxterm.mobatek.net/" href="http://mobaxterm.mobatek.net/">http://mobaxterm.mobatek.net/</a></p> <p>&nbsp;</p> <h3>Virtual Box on Windows 10</h3> <p>My first impressions on Virtual Box compared to Hyper-V that for now at least I far prefer Virtual Box(for running Linux VMs).The support for shared folders between host and guest, the high resolution GUI for the Guest, and the fact that currently many prebuilt images are available for Virtual Box and not so many (or hardly any) for Hyper-V are for now points in favor of Virtual Box. I never run VMs with Windows as Guest OS, I am sure that would impact my choice.</p> <p>Note- once more- that for VirtualBox to run on Windows 10, you need to make sure that hardware virtualization is enabled in BIOS <em>and</em> that Hyper-V is <em>not</em> enabled. Failing to take care of either of these two will return the same error VT-x is not available (VERR_VMX_NO_VMX):<br /> <a href="https://technology.amis.nl/wp-content/uploads/2017/07/image-38.png"><br /> <img style="margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" title="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-38.png?resize=227%2C244&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>Here is a screenshot of a prebuilt VM image running on Virtual Box on Windows 10 – all out of the box.</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-39.png?ssl=1"><img style="margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" title="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-39.png?resize=244%2C187&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>No special set up required. It uses the full screen, it can interact with the host, is clipboard enabled, I can easily toggle between guest and host and it has good resolution and reasonable responsiveness:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-40.png?ssl=1"><img style="margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-40.png?resize=660%2C373&#038;ssl=1" alt="image" border="0" data-recalc-dims="1" /></a></p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <h2>Resources</h2> <p>Article describing setting up two boot profiles for Windows 10 – one for Hyper-V and one without it (for example run Virtual Box): <a title="https://marcofranssen.nl/switch-between-hyper-v-and-virtualbox-on-windows/" href="https://marcofranssen.nl/switch-between-hyper-v-and-virtualbox-on-windows/">https://marcofranssen.nl/switch-between-hyper-v-and-virtualbox-on-windows/</a></p> <p>Article that explains how to create a Hyper-V virtual machine that runs Ubuntu (including desktop): <a title="https://blog.couchbase.com/hyper-v-run-ubuntu-linux-windows/" href="https://blog.couchbase.com/hyper-v-run-ubuntu-linux-windows/">https://blog.couchbase.com/hyper-v-run-ubuntu-linux-windows/</a></p> <p>Microsoft article on how to use local resources (USB, Printer) inside Hyper-V virtual machine: <a title="https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/learn-more/Use-local-resources-on-Hyper-V-virtual-machine-with-VMConnect" href="https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/learn-more/Use-local-resources-on-Hyper-V-virtual-machine-with-VMConnect">https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/learn-more/Use-local-resources-on-Hyper-V-virtual-machine-with-VMConnect</a></p> <p>Microsoft documentation: introduction of Hypervisor Hyper-v on Windows 10: <a title="https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/about/" href="https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/about/">https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/about/</a></p> <p>HP Forum Entry on enabling Virtualization in BIOS fo ZBook G2 : <a title="https://h30434.www3.hp.com/t5/Business-Notebooks/Enable-hardware-virtualization-on-HP-ZBOOK-15-G2/td-p/5513726" href="https://h30434.www3.hp.com/t5/Business-Notebooks/Enable-hardware-virtualization-on-HP-ZBOOK-15-G2/td-p/5513726">https://h30434.www3.hp.com/t5/Business-Notebooks/Enable-hardware-virtualization-on-HP-ZBOOK-15-G2/td-p/5513726</a></p> <p>Introducing Docker for Windows: <a title="https://docs.docker.com/docker-for-windows/" href="https://docs.docker.com/docker-for-windows/">https://docs.docker.com/docker-for-windows/</a> Documentation</p> <p>Download Docker for Windows Community Edition: <a title="https://www.docker.com/community-edition#/download" href="https://www.docker.com/community-edition#/download">https://www.docker.com/community-edition#/download</a></p> <p>Article on installation for Kitematic – the GUI for Docker for Windows: <a title="https://www.htpcbeginner.com/install-kitematic-on-windows/" href="https://www.htpcbeginner.com/install-kitematic-on-windows/">https://www.htpcbeginner.com/install-kitematic-on-windows/</a></p> <p>Two article on converting Virtual Box VM images to Hyper-V: <a title="https://cloudbase.it/convert-virtualbox-to-hyper-v/" href="https://cloudbase.it/convert-virtualbox-to-hyper-v/">https://cloudbase.it/convert-virtualbox-to-hyper-v/</a> and (better) <a title="https://www.groovypost.com/howto/migrate-virtual-box-vms-windows-10-hyper-v/" href="https://www.groovypost.com/howto/migrate-virtual-box-vms-windows-10-hyper-v/">https://www.groovypost.com/howto/migrate-virtual-box-vms-windows-10-hyper-v/</a></p> <p>And: how to create one’s own PC into a Hyper-V VM: <a title="http://www.online-tech-tips.com/free-software-downloads/convert-pc-into-virtual-machine/" href="http://www.online-tech-tips.com/free-software-downloads/convert-pc-into-virtual-machine/">http://www.online-tech-tips.com/free-software-downloads/convert-pc-into-virtual-machine/</a></p> <p>The post <a rel="nofollow" href="https://technology.amis.nl/2017/07/17/virtualization-on-windows-10-with-virtual-box-hyper-v-and-docker-containers/">Virtualization on Windows 10 with Virtual Box, Hyper-V and Docker Containers</a> appeared first on <a rel="nofollow" href="https://technology.amis.nl">AMIS Oracle and Java Blog</a>.</p> Lucas Jellema https://technology.amis.nl/?p=45349 Mon Jul 17 2017 17:17:27 GMT-0400 (EDT) Using the Oracle Instant Client with Docker and Oracle DB12c http://dbaontap.com/2017/07/17/oracle-instant-client-docker-oracle-db/ <p>This weekend, in my desire to learn more about Docker, I decided to implement a multi-container solution. In this PoC, I plan to deploy a container with the Oracle Database 12.1 and a second container with the Oracle Instant Client 12.2. The goal will be to connect to the Database container from the Instant Client ...</p> <p>The post <a rel="nofollow" href="http://dbaontap.com/2017/07/17/oracle-instant-client-docker-oracle-db/">Using the Oracle Instant Client with Docker and Oracle DB12c</a> appeared first on <a rel="nofollow" href="http://dbaontap.com">dbaonTap</a>.</p> DB http://dbaontap.com/?p=1337 Mon Jul 17 2017 02:08:02 GMT-0400 (EDT) JDev/ADF sample - ADF BC - Create View Object From Query with Custom Implementation Class http://andrejusb-samples.blogspot.com/2017/07/jdevadf-sample-adf-bc-create-view.html <div dir="ltr" style="text-align: left;" trbidi="on"><ul><li><a href="http://andrejusb.blogspot.lt/2017/07/adf-bc-create-view-object-from-query.html" target="_blank">ADF BC - Create View Object From Query with Custom Implementation Class</a>. I had a request to explain how to create dynamic ADF BC VO from SQL statement and set custom VO implementation class for newly created VO instance. Custom VO implementation class extends from ADF BC ViewObjectImpl and overrides super method.</li></ul><ol>Download - <a href="https://docs.google.com/uc?export=download&amp;id=0Bw_kr1_tXc-eZ2Z4M19XNEVrS1U">ADFVOFromSQLApp.zip</a></ol></div> Andrejus Baranovskis tag:blogger.com,1999:blog-4301764760924839143.post-4135772157693261296 Sun Jul 16 2017 13:23:00 GMT-0400 (EDT) Auto suggest with HTML5 Data List in Vue.js 2 application https://technology.amis.nl/2017/07/16/auto-suggest-with-html5-data-list-in-vue-js-2-application/ <p>This <a href="https://medium.com/codingthesmartway-com-blog/vue-js-2-vue-resource-real-world-vue-application-with-external-api-access-c3de83f25c00">article</a> shows data (News stories) retrieved from a public REST API (<a href="https://newsapi.org">https://newsapi.org</a>) in a nice and simple yet attractive Vue.js 2 application. In the example, the user selects a news source using a dropdown select component.</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-27.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-27.png?resize=427%2C348&#038;ssl=1" data-recalc-dims="1"></a></p> <p>I was wondering how hard &#8211; or easy &#8211; it would be to replace the <em>select </em>component with an input component with associated data list &#8211; a <a href="https://developer.mozilla.org/en/docs/Web/HTML/Element/datalist" target="_blank">fairly new HTML5 addition</a> that is rendered as a free format entry field with associated list of suggestions based on the input. In the case of the sample News List application, this component renders like this:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-28.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-28.png?resize=471%2C413&#038;ssl=1" data-recalc-dims="1"></a></p> <p>and this if the user has typed “on”</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-29.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-29.png?resize=478%2C235&#038;ssl=1" data-recalc-dims="1"></a></p> <p>To change the behavior of the SourceSelection component in the sample, I first clone the <a href="https://github.com/seeschweiler/vuejsnewslist" target="_blank">original source repository from GitHub</a>.&nbsp; I then focus only on the file SourceSelection.vue in the components directory.</p> <p>I have added the &lt;datalist&gt; tag with the dynamic creation of &lt;option&gt; elements in the same way as in the original &lt;select&gt; element. With one notable change: with the select component, we have both the display label and the underlyivalue. With datalist, we have only one value to associate with each option &#8211; the display label.</p> <p>The input element is easily associated with the datalist, using the list attribute. The input element supports the placeholder attribute that allows us to present an initial text to the end user. The input element is two-way databound to property <em>source </em>on the component. Additionally, the input event &#8211; which fires after each change in the value of the input element &#8211; is associated with a listener method on the component, called sourceChanged.</p> <p>I make a distinction now between the source property &#8211; which is bound to value in the input field &#8211; and the deepSource property which holds the currently selected news source object (with name, id and url). In function sourceChanged() the new value of source is inspected. If it differs from the currently selected deepSource, then we try to find this new value of source in the array of news sources. If we find it, we set that news source as the new deepsource &#8211; and publish the event sourceChanged.</p> <p>The full code for the SourceSelection.vue file is here from <a title="https://gist.github.com/lucasjellema/1c92c052d3a278ee27d17cfa3ea3b54a" href="https://gist.github.com/lucasjellema/1c92c052d3a278ee27d17cfa3ea3b54a">https://gist.github.com/lucasjellema/1c92c052d3a278ee27d17cfa3ea3b54a</a>:</p> <p><script src="https://gist.github.com/lucasjellema/1c92c052d3a278ee27d17cfa3ea3b54a.js"></script></p> <p>The post <a rel="nofollow" href="https://technology.amis.nl/2017/07/16/auto-suggest-with-html5-data-list-in-vue-js-2-application/">Auto suggest with HTML5 Data List in Vue.js 2 application</a> appeared first on <a rel="nofollow" href="https://technology.amis.nl">AMIS Oracle and Java Blog</a>.</p> Lucas Jellema https://technology.amis.nl/?p=45322 Sun Jul 16 2017 07:11:03 GMT-0400 (EDT) First encounters of a happy kind – rich web client application development with Vue.js https://technology.amis.nl/2017/07/16/first-encounters-of-a-happy-kind-rich-web-client-application-development-with-vue-js/ <p><img style="float: right; display: inline" src="https://i1.wp.com/vuejs.org/images/logo.png?w=702&#038;ssl=1" align="right" data-recalc-dims="1">Development of rich web applications can be done in various ways, using one or more of many frameworks. In the end it all boils down to HTML(5), CSS and JavaScript, run and interpreted by the browser. But the exact way of getting there differs. Server side oriented Web applications with .NET and Java EE (Servlet, JSP, JSF) and also PHP, Python and Ruby has long been the most important way of architecting web applications. However, with the power of today’s browsers, the advanced state of HTML5 and JavaScript and the high degree of standardization across browsers, it is now almost goes without saying that web applications are implemented with a rich client side that interacts with a backend to a very limited degree and typically only to retrieve or pass data or enlist external services and complex backend operations. What client/server did to terminal based computing in the early nineties, the fat browser is doing now to three tier web computing with its heavy focus on the server side.</p> <p>The most prominent frameworks for developing these fat browser based clients are Angular and Angular 2, React.js, Ember, complemented by jQuery and a plethora of other libraries, components and frameworks (see for example this <a href="http://www.valuecoders.com/blog/technology-and-apps/top-javascript-frameworks-list-comparison/" target="_blank">list of top 9 frameworks</a>) . And then there is Vue.js. To be honest, I am not sure where Vue ranks in all the trends and StackOverflow comparisons etc. However, I did decide to take a quick look at Vue.js &#8211; and I liked what I saw.</p> <p>From the Vue website:</p> <blockquote> <p><em>Vue (pronounced /vjuː/, like <strong>view</strong>) is a <strong>progressive framework</strong> for building user interfaces. Unlike other monolithic frameworks, Vue is designed from the ground up to be incrementally adoptable. The core library is focused on the view layer only, and is very easy to pick up and integrate with other libraries or existing projects. On the other hand, Vue is also perfectly capable of powering sophisticated Single-Page Applications when used in combination with </em><a href="https://vuejs.org/v2/guide/single-file-components.html"><em>modern tooling</em></a><em> and </em><a href="https://github.com/vuejs/awesome-vue#components--libraries"><em>supporting libraries</em></a><em>.</em></p> </blockquote> <p>I have never really taken to Angular. It felt overly complex and I never particularly liked it. Perhaps I should give it another go &#8211; now that my understanding of modern web development has evolved. Maybe now I am finally ready for it. Instead, I checked out Vue.js and it made me more than a little happy. I smiled as I read through the introductory guide, because it made sense. The pieces fit together. I understand the purpose of the main moving pieces and I enjoy trying them out. The two way data binding is fun. The encapsulation of components, passing down properties, passing up events &#8211; I like that too. The HTML syntax, the use of templates, the close fit with “standard” HTML. It somehow agrees with me.</p> <p>Note: it is still early days and I have not yet built a serious application with Vue. But I thought I should share some of my excitement.</p> <p>The creator of Vue, Evan You, Vue.js ( <a href="http://evanyou.me/">http://evanyou.me/</a> ), writes about Vue’s origins:</p> <blockquote> <p><em>I started </em><a href="https://vuejs.org/"><em>Vue</em></a><em> as a personal project when I was working at Google Creative Labs in 2013. My job there involved building a lot of UI prototypes. After hand-rolling many of them with vanilla JavaScript and using Angular 1 for a few, I wanted something that captured the <strong>declarative nature of Angular&#8217;s data binding, but with a simpler, more approachable API</strong>. That&#8217;s how Vue started.</em></p> </blockquote> <p>And that is what appealed to me.</p> <p>The first thing I did to get started with Vue.js was to read through the Introductory Guide for Vue.js 2.0: <a title="https://vuejs.org/v2/guide/" href="https://vuejs.org/v2/guide/">https://vuejs.org/v2/guide/</a> . </p> <p><img alt="Component Tree" src="https://i2.wp.com/vuejs.org/images/components.png?resize=654%2C253&#038;ssl=1" data-recalc-dims="1"></p> <p>It is a succinct tour and explanation, starting at the basics and quickly coming round to the interesting challenges. Most examples in the guide work in line &#8211; and using the Google Chrome Addin for Vue.js it is even easier to inspect what is going on in the runtime application.</p> <p>The easiest way to try out Vue.js (at its simplest) is using the <a href="https://jsfiddle.net/chrisvfritz/50wL7mdz/">JSFiddle Hello World example</a>.</p> <p>Next, I read through and followed the example of a more interesting Vue application in <a href="https://medium.com/codingthesmartway-com-blog/vue-js-2-vue-resource-real-world-vue-application-with-external-api-access-c3de83f25c00" target="_blank">this article</a> that shows data (News stories) retrieved from a public REST API (<a title="https://newsapi.org" href="https://newsapi.org">https://newsapi.org</a>):</p> <p><img src="https://i0.wp.com/cdn-images-1.medium.com/max/906/1*luaLiL9ctp2Rl58gPGQvhw.png?w=702&#038;ssl=1" data-recalc-dims="1"></p> <p>This example explains in a very enjoyable way how two components are created &#8211; news source selection and news story list from selected source- as encapsulated, independent components that still work together. Both components interact with the REST API to fetch their data. The article starts with an instruction on how to install the Vue command line tool and initialize a new project with a generated scaffold. If Node and NPM are already installed, you will be up and running with the hello world of Vue applications in less than 5 minutes.</p> <h3>Vue and Oracle JET</h3> <p>One other line of investigation is how Vue.js can be used in an Oracle JET application, to complement and perhaps even replace KnockOut. More on that: </p> <ul> <li>Blog: Integrating Vue.js with Oracle JET by Justin Biard&nbsp;&nbsp; <a title="https://icodealot.com/integrating-vue-js-with-oracle-jet/" href="https://icodealot.com/integrating-vue-js-with-oracle-jet/">https://icodealot.com/integrating-vue-js-with-oracle-jet/</a></li> <li>YouTube: From Knockout to Vue in Oracle JET by Geertjan Wielenga <a title="https://www.youtube.com/watch?v=BMs9KoSGi7s" href="https://www.youtube.com/watch?v=BMs9KoSGi7s">https://www.youtube.com/watch?v=BMs9KoSGi7s</a> and Replacing Knockout Completely in Oracle JET &#8211; <a title="https://www.youtube.com/watch?v=54CqLy_t7KY" href="https://www.youtube.com/watch?v=54CqLy_t7KY">https://www.youtube.com/watch?v=54CqLy_t7KY</a></li> <li>GitHub: sources for Geertjan Wielenga’s experiments with JET and Vue.js: <a title="https://github.com/GeertjanWielenga/vuejet" href="https://github.com/GeertjanWielenga/vuejet">https://github.com/GeertjanWielenga/vuejet</a>&nbsp;</li> </ul> <p>The post <a rel="nofollow" href="https://technology.amis.nl/2017/07/16/first-encounters-of-a-happy-kind-rich-web-client-application-development-with-vue-js/">First encounters of a happy kind &#8211; rich web client application development with Vue.js</a> appeared first on <a rel="nofollow" href="https://technology.amis.nl">AMIS Oracle and Java Blog</a>.</p> Lucas Jellema https://technology.amis.nl/?p=45314 Sun Jul 16 2017 02:39:56 GMT-0400 (EDT) Running any Node application on Oracle Container Cloud Servicer https://technology.amis.nl/2017/07/16/running-any-node-application-on-oracle-container-cloud-servicer/ <p>In an <a href="https://technology.amis.nl/2017/05/21/running-node-js-applications-from-github-in-generic-docker-container/" target="_blank">earlier article</a>, I discussed the creation of a generic Docker Container Image that runs any Node.JS application based on sources for that application on GitHub. When the container is started, the GitHub URL is passed in as a parameter and the container will download the sources and run the application. Using this generic image, you can your Node application everywhere you can run a Docker container. One of the places where you can run a Docker Container is the Oracle Container Cloud Service (OCCS) &#8211; a service that offers a platform for managing your container landscape. In this article, I will show how I used OCCS to run my generic Docker image for running Node application and how I configured the service to run a specific Node application from GitHub.</p> <p>Getting started with OCCS is described very well in an article by my colleague Luc Gorissen on this same blog: <a href="https://technology.amis.nl/2017/05/24/docker-weblogic-image-oracle-container-cloud-service/" target="_blank">Docker, WebLogic Image on Oracle Container Cloud Service</a>. I used his article to get started myself.</p> <p>The steps are:</p> <ul> <li>create OCCS Service instance <li>configure OCCS instance (with Docker container image registry) <li>Create a Service for the desired container image (the generic Node application runner) &#8211; this includes configuring the Docker container parameters such as port mapping and environment variables <li>Deploy the Service (run a container instance) <li>Check the deployment (status, logs, assigned public IP) <li>Test the deployment &#8211; check if the Node application is indeed available</li> </ul> <p>&nbsp;</p> <h3>Create OCCS Service instance</h3> <p>Assuming you have an Oracle Public Cloud account with a subscription to OCCS. Go to the Dashboard for OCCS. Click on Create Service</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-1.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-1.png?resize=571%2C327&#038;ssl=1" data-recalc-dims="1"></a></p> <p>Configure the service instance:</p> <p>&nbsp;</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image3.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image3_thumb.png?resize=702%2C415&#038;ssl=1" data-recalc-dims="1"></a></p> <p>However, do not make it too small (!) (Oracle Cloud does not come in small portions):</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-2.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-2.png?resize=702%2C283&#038;ssl=1" data-recalc-dims="1"></a></p> <p>So now with the minimum allowed data volume size (for a stateless container!)</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-3.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-3.png?resize=702%2C408&#038;ssl=1" data-recalc-dims="1"></a></p> <p>This time I pass the validations:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-4.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-4.png?resize=702%2C353&#038;ssl=1" data-recalc-dims="1"></a></p> <p>And the Container Cloud Service instance is&nbsp; created:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-5.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-5.png?resize=702%2C449&#038;ssl=1" data-recalc-dims="1"></a></p> <p>&nbsp;</p> <h3>Configure OCCS instance (with Docker container image registry)</h3> <p>After some time, when the instance is ready, I can access it:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-6.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-6.png?resize=690%2C167&#038;ssl=1" data-recalc-dims="1"></a></p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-7.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-7.png?resize=608%2C414&#038;ssl=1" data-recalc-dims="1"></a></p> <p>It is pretty sizable as you can see. </p> <p>Let’s access the Container console.</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-8.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-8.png?resize=614%2C220&#038;ssl=1" data-recalc-dims="1"></a></p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-9.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-9.png?resize=305%2C325&#038;ssl=1" data-recalc-dims="1"></a></p> <p>The Dashboard gives an overview of the current status, the actual deployments (none yet) and access to Services, Stacks, Containers, Images and more. </p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-10.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-10.png?resize=702%2C315&#038;ssl=1" data-recalc-dims="1"></a></p> <p>One of the first things to do, is to configure a (Container Image) Registry &#8211; for example a local registry or an account on Docker Hub &#8211; my account, where I have saved container images that I need to create containers from in the Oracle Container Cloud:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-11.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-11.png?resize=434%2C257&#038;ssl=1" data-recalc-dims="1"></a></p> <p> My details are validated:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-12.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-12.png?resize=433%2C317&#038;ssl=1" data-recalc-dims="1"></a></p> <p>The registry is added:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-13.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-13.png?resize=702%2C283&#038;ssl=1" data-recalc-dims="1"></a></p> <p>&nbsp;</p> <h3>Create a Service for a desired container image </h3> <p>Services are container images along with configuration to be used for running containers. Oracle Container Cloud comes with a number of popular container images already configured as services. I want to add another service, for my own image: the generic Node application runner). For this I select the image from my Docker Hub account followed by configuring the Docker container parameters such as port mapping and environment variables</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-14.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-14.png?resize=702%2C193&#038;ssl=1" data-recalc-dims="1"></a></p> <p>The Service editor &#8211; the form to define the Image (from one of the configured registries), the name of the service (which represents the combination of the image with a set of configuration settings to make it into a specific <em>service</em>) and of course those configuration settings &#8211; port mappings, environment variables, volumes etc. </p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-15.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-15.png?resize=644%2C551&#038;ssl=1" data-recalc-dims="1"></a></p> <p>Note: I am creating a service for the image that can run any Node application that is available in GitHub (as described here: <a title="https://technology.amis.nl/2017/05/21/running-node-js-applications-from-github-in-generic-docker-container/" href="https://technology.amis.nl/2017/05/21/running-node-js-applications-from-github-in-generic-docker-container/">https://technology.amis.nl/2017/05/21/running-node-js-applications-from-github-in-generic-docker-container/</a> )</p> <h3>Deploy the Service (run a container instance)</h3> <p>After the service was created, it is now available as the blueprint to run new containers from. This dis done through a Deployment &#8211; this ties together a Service with a some runtime settings around scaling, load balancing and the like:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-16.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-16.png?resize=702%2C141&#038;ssl=1" data-recalc-dims="1"></a></p> <p>Set the deployment details for the new deployment of this service:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-17.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-17.png?resize=505%2C444&#038;ssl=1" data-recalc-dims="1"></a></p> <p>After completing these details, press deploy to go ahead and run the new deployment; in this case it consists of a single instance (boring….) but it could have been more involved.</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-18.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-18.png?resize=593%2C240&#038;ssl=1" data-recalc-dims="1"></a></p> <p>The deployment is still starting.</p> <p>A little later (a few seconds) the container is running:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-19.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-19.png?resize=702%2C277&#038;ssl=1" data-recalc-dims="1"></a></p> <p>Check some details: </p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-20.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-20.png?resize=584%2C253&#038;ssl=1" data-recalc-dims="1"></a></p> <p>To check the deployment (status, logs, assigned IP), click on the container name:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-21.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-21.png?resize=702%2C344&#038;ssl=1" data-recalc-dims="1"></a></p> <p>Anything written to the console inside the container is accessible from the Logs:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-22.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-22.png?resize=541%2C322&#038;ssl=1" data-recalc-dims="1"></a></p> <p>&nbsp;</p> <p>To learn about the public IP address at which the application is exposed, we need to turn to the Hosts tab.</p> <h3>Monitor Hosts</h3> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-23.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-23.png?resize=568%2C171&#038;ssl=1" data-recalc-dims="1"></a></p> <p>Drill down on one specific host:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-24.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-24.png?resize=559%2C265&#038;ssl=1" data-recalc-dims="1"></a></p> <p>and learn its public IP address, where we can access the application running in the deployed container. </p> <h3>Test the deployment &#8211; check if the Node application is indeed available</h3> <p>With the host’s public IP address and the knowledge that port 8080 inside the container (remember environment variable APP_PORT that was defined as 8080 to pass to the generic Node application running) is mapped to port 8005 externally, we can now invoke the application running inside the container deployed on the Container Cloud Service from our local browser.</p> <p>&nbsp;</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-25.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-25.png?resize=605%2C282&#038;ssl=1" data-recalc-dims="1"></a></p> <p>&nbsp;</p> <p>And there is the output of the application (I never said it would be spectacular…)</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image-26.png?ssl=1"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/image_thumb-26.png?resize=337%2C126&#038;ssl=1" data-recalc-dims="1"></a></p> <p>&nbsp;</p> <h2>Conclusion</h2> <p>After having gotten used to the sequence of actions:</p> <ul> <li>configure registry (probably only once)</li> <li>configure a service (for every container image plus specific setup of configuration parameters, including typical Docker container settings such as port mapping, volumes, environment variables)</li> <li>define and run a deployment (from a service) with scaling factor and other deployment details</li> <li>get hold of host public IP address to access the application in the container</li> </ul> <p>Oracle Container Cloud Service provides a very smooth experience that compares favorably with other Container Cloud Services and management environments I have seen. From a Developer’s perspective at least, OCCS does a great job. It is a little too early to say much about the Ops side of things &#8211; how operations with OCCS are.</p> <p>The post <a rel="nofollow" href="https://technology.amis.nl/2017/07/16/running-any-node-application-on-oracle-container-cloud-servicer/">Running any Node application on Oracle Container Cloud Servicer</a> appeared first on <a rel="nofollow" href="https://technology.amis.nl">AMIS Oracle and Java Blog</a>.</p> Lucas Jellema https://technology.amis.nl/?p=45312 Sun Jul 16 2017 01:32:42 GMT-0400 (EDT) AWS – Build your own Oracle Linux 7 AMI in the Cloud https://technology.amis.nl/2017/07/14/aws-build-oracle-linux-7-ami-cloud/ <p>I always like to know what is installed in the servers that I need to use for databases or Weblogic installs. Whether it is in the Oracle Cloud or in any other Cloud. One way to know is to build your own image that will be used to start your instances. My latest post was about building my own image for the Oracle Cloud (IAAS), but I could only get it to work with Linux 6. Whatever I tried with Linux 7 it wouldn’t start in a way that I could logon to it. And no way to see what was wrong. Not even when mounting the boot disk to an other instance after a test boot. My trial ran out before I could get it to work and a new trial had other problems.</p> <p>Since we have an AWS account I could try to do the same in AWS EC2 when I had some spare time. A few years back I had built Linux 6 AMI’s via a process that felt a bit complicated but it worked for a PV Kernel. For Linux 7 I couldn’t find any examples on the web on how to do that with enough detail to really get it working. But while was studying for my Oracle VM 3.0 for x86 Certified Implementation Specialist exam<strong> I realized what must have been the problem</strong>. Therefore below follow my notes on how to build my own Oracle Linux 7.3 AMI for EC2.</p> <h1>General Steps:</h1> <ol> <li>Create a new Machine in VirtualBox</li> <li>Install Oracle Linux 7.3 on it</li> <li>Configure it and install some extra packages</li> <li>Clean your soon to be AMI</li> <li>Export your VirtualBox machine as an OVA</li> <li>Create an S3 bucket and upload your OVA</li> <li>Use aws cli to import your image</li> <li>Start an instance from your new AMI, install the UEKR3 kernel.</li> <li>Create a new AMI from that instance in order to give it a sensible name</li> </ol> <h1></h1> <p><span id="more-45199"></span></p> <h1>The nitty gritty details:</h1> <h2>Ad 1) Create a new Machine in VirtualBox</h2> <p>Create an New VirtualBox Machine and start typing the name as “OL” which sets the type to Linux and version to Oracle (64 bit). Pick a name you like. I choose OL73. I kept the memory as it was (1024M). Create a HardDisk. 10Gb Dynamically allocated (VDI) worked for me. I disabled the audio as I had no use for that and made sure one network interface was available. I selected my NatNetwork type because that gives me VM access to the network and lets me access it via a Forwarding Rule on just one interface. You need to logon via VBox first to get the IP address then you can use an other preferred terminal to login. I like putty.</p> <p>Attach the DVD with the Linux you want to use, I like Oracle Linux (<a href="https://otn.oracle.com">https://otn.oracle.com</a>), and start the VM.</p> <p><img data-attachment-id="45205" data-permalink="https://technology.amis.nl/2017/07/14/aws-build-oracle-linux-7-ami-cloud/2017-07-03-16_39_21-ol7-settings/" data-orig-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-16_39_21-OL7-Settings.png?fit=400%2C119&amp;ssl=1" data-orig-size="400,119" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="2017-07-03 16_39_21-OL7 &#8211; Settings" data-image-description="" data-medium-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-16_39_21-OL7-Settings.png?fit=300%2C89&amp;ssl=1" data-large-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-16_39_21-OL7-Settings.png?fit=400%2C119&amp;ssl=1" class="alignnone size-full wp-image-45205" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-16_39_21-OL7-Settings.png?resize=400%2C119&#038;ssl=1" alt="" srcset="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-16_39_21-OL7-Settings.png?w=400&amp;ssl=1 400w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-16_39_21-OL7-Settings.png?resize=300%2C89&amp;ssl=1 300w" sizes="(max-width: 400px) 100vw, 400px" data-recalc-dims="1" /></p> <h2>Ad 2) Install Oracle Linux 7.3 on it</h2> <p>When you get the installation screen do not choose &#8220;Install Oracle Linux 7.3&#8221; but use TAB to add “ net.ifnames=0” to the boot parameters (<strong>note</strong> the extra space) and press enter.</p> <p><img data-attachment-id="45207" data-permalink="https://technology.amis.nl/2017/07/14/aws-build-oracle-linux-7-ami-cloud/2017-07-03-16_41_19-ol7-running-oracle-vm-virtualbox/" data-orig-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-16_41_19-OL7-Running-Oracle-VM-VirtualBox.png?fit=552%2C115&amp;ssl=1" data-orig-size="552,115" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="2017-07-03 16_41_19-OL7 [Running] &#8211; Oracle VM VirtualBox" data-image-description="" data-medium-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-16_41_19-OL7-Running-Oracle-VM-VirtualBox.png?fit=300%2C63&amp;ssl=1" data-large-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-16_41_19-OL7-Running-Oracle-VM-VirtualBox.png?fit=552%2C115&amp;ssl=1" class="alignnone size-full wp-image-45207" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-16_41_19-OL7-Running-Oracle-VM-VirtualBox.png?resize=552%2C115&#038;ssl=1" alt="" srcset="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-16_41_19-OL7-Running-Oracle-VM-VirtualBox.png?w=552&amp;ssl=1 552w, https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-16_41_19-OL7-Running-Oracle-VM-VirtualBox.png?resize=300%2C63&amp;ssl=1 300w" sizes="(max-width: 552px) 100vw, 552px" data-recalc-dims="1" /></p> <p>Choose the language you need, English (United States) with a us keyboard layout works for me. Go to the next screen.</p> <p>Before you edit “Date &amp; Time” edit the network connection (which is needed for NTP).</p> <p><img data-attachment-id="45208" data-permalink="https://technology.amis.nl/2017/07/14/aws-build-oracle-linux-7-ami-cloud/2017-07-03-16_48_59-ol7-running-oracle-vm-virtualbox/" data-orig-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-16_48_59-OL7-Running-Oracle-VM-VirtualBox.png?fit=352%2C130&amp;ssl=1" data-orig-size="352,130" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="2017-07-03 16_48_59-OL7 [Running] &#8211; Oracle VM VirtualBox" data-image-description="" data-medium-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-16_48_59-OL7-Running-Oracle-VM-VirtualBox.png?fit=300%2C111&amp;ssl=1" data-large-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-16_48_59-OL7-Running-Oracle-VM-VirtualBox.png?fit=352%2C130&amp;ssl=1" class="alignnone size-full wp-image-45208" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-16_48_59-OL7-Running-Oracle-VM-VirtualBox.png?resize=352%2C130&#038;ssl=1" alt="" srcset="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-16_48_59-OL7-Running-Oracle-VM-VirtualBox.png?w=352&amp;ssl=1 352w, https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-16_48_59-OL7-Running-Oracle-VM-VirtualBox.png?resize=300%2C111&amp;ssl=1 300w, https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-16_48_59-OL7-Running-Oracle-VM-VirtualBox.png?resize=351%2C130&amp;ssl=1 351w" sizes="(max-width: 352px) 100vw, 352px" data-recalc-dims="1" /></p> <p>Notice that the interface has the name eth0 and is disconnected. Turn the eth0 on by flipping the switch</p> <p><img data-attachment-id="45209" data-permalink="https://technology.amis.nl/2017/07/14/aws-build-oracle-linux-7-ami-cloud/2017-07-03-16_50_42-ol7-running-oracle-vm-virtualbox/" data-orig-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-16_50_42-OL7-Running-Oracle-VM-VirtualBox.png?fit=475%2C61&amp;ssl=1" data-orig-size="475,61" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="2017-07-03 16_50_42-OL7 [Running] &#8211; Oracle VM VirtualBox" data-image-description="" data-medium-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-16_50_42-OL7-Running-Oracle-VM-VirtualBox.png?fit=300%2C39&amp;ssl=1" data-large-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-16_50_42-OL7-Running-Oracle-VM-VirtualBox.png?fit=475%2C61&amp;ssl=1" class="alignnone size-full wp-image-45209" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-16_50_42-OL7-Running-Oracle-VM-VirtualBox.png?resize=475%2C61&#038;ssl=1" alt="" srcset="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-16_50_42-OL7-Running-Oracle-VM-VirtualBox.png?w=475&amp;ssl=1 475w, https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-16_50_42-OL7-Running-Oracle-VM-VirtualBox.png?resize=300%2C39&amp;ssl=1 300w" sizes="(max-width: 475px) 100vw, 475px" data-recalc-dims="1" /></p> <p>And notice the IP address etc. get populated:</p> <p><img data-attachment-id="45210" data-permalink="https://technology.amis.nl/2017/07/14/aws-build-oracle-linux-7-ami-cloud/2017-07-03-16_51_41-ol7-running-oracle-vm-virtualbox/" data-orig-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-16_51_41-OL7-Running-Oracle-VM-VirtualBox.png?fit=255%2C177&amp;ssl=1" data-orig-size="255,177" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="2017-07-03 16_51_41-OL7 [Running] &#8211; Oracle VM VirtualBox" data-image-description="" data-medium-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-16_51_41-OL7-Running-Oracle-VM-VirtualBox.png?fit=255%2C177&amp;ssl=1" data-large-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-16_51_41-OL7-Running-Oracle-VM-VirtualBox.png?fit=255%2C177&amp;ssl=1" class="alignnone size-full wp-image-45210" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-16_51_41-OL7-Running-Oracle-VM-VirtualBox.png?resize=255%2C177&#038;ssl=1" alt="" data-recalc-dims="1" /></p> <p>Leave the host name as it is (localhost.localdomain) because your cloud provider will change anything you set here anyway, and press the configure button. Then choose the General tab to check “Automatically connect to this network when it is available”, keep the settings on the Ethernet tab as they are, the same for 802.1X Security tab, DCB tab idem. On the IPv4 Settings tab, leave “Method” on Automatic (DHCP) and check “Require IPv4 addressing for this connection to complete”. On the IPv6 Settings tab change “Method” to Ignore and press the “Save” button and then press “Done”.</p> <p>Next change the “Date &amp; Time” settings to your preferred settings and make sure that “Network Time” is on and configured. Then press “Done”.</p> <p><img data-attachment-id="45211" data-permalink="https://technology.amis.nl/2017/07/14/aws-build-oracle-linux-7-ami-cloud/2017-07-03-17_05_43-ol7-running-oracle-vm-virtualbox/" data-orig-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-17_05_43-OL7-Running-Oracle-VM-VirtualBox.png?fit=1024%2C117&amp;ssl=1" data-orig-size="1024,117" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="2017-07-03 17_05_43-OL7 [Running] &#8211; Oracle VM VirtualBox" data-image-description="" data-medium-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-17_05_43-OL7-Running-Oracle-VM-VirtualBox.png?fit=300%2C34&amp;ssl=1" data-large-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-17_05_43-OL7-Running-Oracle-VM-VirtualBox.png?fit=702%2C80&amp;ssl=1" class="alignnone size-full wp-image-45211" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-17_05_43-OL7-Running-Oracle-VM-VirtualBox.png?resize=702%2C80&#038;ssl=1" alt="" srcset="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-17_05_43-OL7-Running-Oracle-VM-VirtualBox.png?w=1024&amp;ssl=1 1024w, https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-17_05_43-OL7-Running-Oracle-VM-VirtualBox.png?resize=300%2C34&amp;ssl=1 300w, https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-17_05_43-OL7-Running-Oracle-VM-VirtualBox.png?resize=768%2C88&amp;ssl=1 768w" sizes="(max-width: 702px) 100vw, 702px" data-recalc-dims="1" /></p> <p>Next you have to press “Installation Destination”</p> <p><img data-attachment-id="45212" data-permalink="https://technology.amis.nl/2017/07/14/aws-build-oracle-linux-7-ami-cloud/2017-07-03-17_09_42-ol7-running-oracle-vm-virtualbox/" data-orig-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-17_09_42-OL7-Running-Oracle-VM-VirtualBox.png?fit=352%2C77&amp;ssl=1" data-orig-size="352,77" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="2017-07-03 17_09_42-OL7 [Running] &#8211; Oracle VM VirtualBox" data-image-description="" data-medium-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-17_09_42-OL7-Running-Oracle-VM-VirtualBox.png?fit=300%2C66&amp;ssl=1" data-large-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-17_09_42-OL7-Running-Oracle-VM-VirtualBox.png?fit=352%2C77&amp;ssl=1" class="alignnone size-full wp-image-45212" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-17_09_42-OL7-Running-Oracle-VM-VirtualBox.png?resize=352%2C77&#038;ssl=1" alt="" srcset="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-17_09_42-OL7-Running-Oracle-VM-VirtualBox.png?w=352&amp;ssl=1 352w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-17_09_42-OL7-Running-Oracle-VM-VirtualBox.png?resize=300%2C66&amp;ssl=1 300w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-17_09_42-OL7-Running-Oracle-VM-VirtualBox.png?resize=351%2C77&amp;ssl=1 351w" sizes="(max-width: 352px) 100vw, 352px" data-recalc-dims="1" /></p> <p>Now if the details are in accordance with what you want press “Done”.</p> <p><img data-attachment-id="45214" data-permalink="https://technology.amis.nl/2017/07/14/aws-build-oracle-linux-7-ami-cloud/2017-07-03-17_25_14-ol7-running-oracle-vm-virtualbox/" data-orig-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-17_25_14-OL7-Running-Oracle-VM-VirtualBox.png?fit=483%2C116&amp;ssl=1" data-orig-size="483,116" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="2017-07-03 17_25_14-OL7 [Running] &#8211; Oracle VM VirtualBox" data-image-description="" data-medium-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-17_25_14-OL7-Running-Oracle-VM-VirtualBox.png?fit=300%2C72&amp;ssl=1" data-large-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-17_25_14-OL7-Running-Oracle-VM-VirtualBox.png?fit=483%2C116&amp;ssl=1" class="alignnone size-full wp-image-45214" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-17_25_14-OL7-Running-Oracle-VM-VirtualBox.png?resize=483%2C116&#038;ssl=1" alt="" srcset="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-17_25_14-OL7-Running-Oracle-VM-VirtualBox.png?w=483&amp;ssl=1 483w, https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/07/2017-07-03-17_25_14-OL7-Running-Oracle-VM-VirtualBox.png?resize=300%2C72&amp;ssl=1 300w" sizes="(max-width: 483px) 100vw, 483px" data-recalc-dims="1" /></p> <p><strong>Your choice here has impact on what you can expect from the “cloud-init” tools.</strong></p> <p>For example