<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-2754422473924744459</atom:id><lastBuildDate>Thu, 24 Oct 2024 20:53:41 +0000</lastBuildDate><category>OID</category><category>Policystore</category><category>bpel</category><category>em</category><category>jps</category><category>security</category><category>soa</category><category>weblogic</category><category>LDIF</category><category>Performance</category><category>assignee</category><category>highcpu</category><category>humantask</category><category>jax-ws securitypolicy soap token wss client standalone soaphandler security</category><category>jps-config</category><category>ldap</category><category>oaam</category><category>oim oim11gr2 UserManager OIMClient</category><category>opam</category><category>opss</category><category>pdp</category><category>thread</category><category>threaddump</category><title>Oracle FMW Articles</title><description>Some interesting technical facts..</description><link>http://gskblogs.blogspot.com/</link><managingEditor>noreply@blogger.com (Ganesh Kamble)</managingEditor><generator>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754422473924744459.post-5620376281739923137</guid><pubDate>Mon, 12 May 2014 10:36:00 +0000</pubDate><atom:updated>2014-05-12T16:12:50.234+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">bpel</category><category domain="http://www.blogger.com/atom/ns#">em</category><category domain="http://www.blogger.com/atom/ns#">soa</category><title>Oracle SOA Composite – Retire, Activate, Shut Down and Start Up</title><description>&lt;h3&gt;
Overview&lt;/h3&gt;
Once Oracle SOA composite are deployed on SOA server with multiple versions, we can easily manage their lifecycle with the help of Oracle Enterprise Manager. Oracle Enterprise Manager Fusion Middleware Control provides a rich user interface to manage, monitor and diagnose the SOA infrastructure.  &lt;br /&gt;
In this post, I will discuss four actions apart from deploying and undeploying that you can perform on SOA Composites using Oracle EM Console. These actions include retiring, activating, shutting down and starting up the composite. On selecting a composite, you can see the Retire and Shut Down buttons enabled as shown in Figure 1.  &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://lh4.ggpht.com/-HS6YLYiAPck/U3Cj9ZnyhvI/AAAAAAAAB88/4SHE5qyCRBY/s1600-h/clip_image002%25255B4%25255D.jpg&quot;&gt;&lt;img alt=&quot;clip_image002&quot; border=&quot;0&quot; src=&quot;http://lh6.ggpht.com/-S5rLB0pdgB0/U3CkIhijzyI/AAAAAAAAB9E/M3A0-UPs77w/clip_image002_thumb%25255B1%25255D.jpg?imgmax=800&quot; height=&quot;287&quot; style=&quot;background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;clip_image002&quot; width=&quot;777&quot; /&gt;&lt;/a&gt;  &lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;
Figure 1  &lt;/div&gt;
&lt;h3&gt;
Actions&lt;/h3&gt;
&lt;h4&gt;
Retire&lt;/h4&gt;
· &lt;b&gt;Retire Default Composite&lt;/b&gt;  &lt;br /&gt;
If another active revision of this composite is found, it will be designated as the new default revision. Once retired, this composite revision will no longer process any incoming requests, and no new instances will be created. However, all currently executing instances will complete normally.  &lt;br /&gt;
· &lt;b&gt;Retire Non-Default Composite&lt;/b&gt;  &lt;br /&gt;
Once retired, the composite revision will no longer process any incoming requests, and no new instances will be created. However, all currently executing instances will complete normally.  &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&lt;h4&gt;
Activate&lt;/h4&gt;
This will activate an already retired composite. It will start accepting new incoming requests and new instances will be created.  &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&lt;h4&gt;
Shut Down&lt;/h4&gt;
You will not be able to create new instances of this composite. In addition, processing of existing instances of the composite will stop.  &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&lt;h4&gt;
Start Up&lt;/h4&gt;
This will start the composites which are in shut down state.  &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&lt;h3&gt;
Issue&lt;/h3&gt;
If you try to perform some action on a composite instance which is in Shut Down state, you will get the following error:&lt;br /&gt;
&lt;pre&gt;&amp;lt;May 12, 2014 10:49:20 AM IST&amp;gt; &amp;lt;Error&amp;gt; &amp;lt;oracle.soa.services.workflow.task&amp;gt; &amp;lt;BEA-000000&amp;gt; &amp;lt;&amp;lt;.&amp;gt; Workflow Service Engine callback to SOA mesh failed.&lt;/pre&gt;
&lt;pre&gt;Callback operation onTaskCompleted from ci/CIBusinessRule!1.0/CIBusinessRuleHumantask to CIBusinessRule/CIBusinessRuleHumantask.TaskService_1 failed with error: Message Router for ci/CIBusinessRule!1.0*soa_5196ff1f-b4cb-429a-a302-bd4aea651c37 is not able to process messages. The composite state is set to &quot;off&quot;.&amp;nbsp; The composite can be turned &quot;on&quot; by using the administrative consoles.&lt;/pre&gt;
&lt;pre&gt;Check the underlying exception. Ensure that the SOA composite is configured correctly.&lt;/pre&gt;
&lt;pre&gt;ORABPEL-30081&lt;/pre&gt;
&lt;pre&gt;Workflow Service Engine callback to SOA mesh failed.&lt;/pre&gt;
&lt;pre&gt;Callback operation onTaskCompleted from ci/CIBusinessRule!1.0/CIBusinessRuleHumantask to CIBusinessRule/CIBusinessRuleHumantask.TaskService_1 failed with error: Message Router for ci/CIBusinessRule!1.0*soa_5196ff1f-b4cb-429a-a302-bd4aea651c37 is not able to process messages. The composite state is set to &quot;off&quot;.&amp;nbsp; The composite can be turned &quot;on&quot; by using the administrative consoles.&lt;/pre&gt;
&lt;pre&gt;Check the underlying exception. Ensure that the SOA composite is configured correctly.&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at oracle.bpel.services.workflow.fabric.WorkflowServiceEngine.doCallback(WorkflowServiceEngine.java:1822)&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at oracle.bpel.services.workflow.task.impl.WorkflowCallback.postToFabric(WorkflowCallback.java:440)&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at oracle.bpel.services.workflow.task.impl.WorkflowCallback.onTaskComplete(WorkflowCallback.java:129)&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;br /&gt;
To resolve this error, you must start the composite before performing any action on the human task. &lt;br /&gt;
I hope this post will help people in managing the lifecycle of SOA Composite applications with ease.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>http://gskblogs.blogspot.com/2014/05/oracle-soa-composite-retire-activate.html</link><author>noreply@blogger.com (Anonymous)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-S5rLB0pdgB0/U3CkIhijzyI/AAAAAAAAB9E/M3A0-UPs77w/s72-c/clip_image002_thumb%25255B1%25255D.jpg?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754422473924744459.post-3765353447934780612</guid><pubDate>Wed, 07 May 2014 10:55:00 +0000</pubDate><atom:updated>2014-05-07T16:27:05.819+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">assignee</category><category domain="http://www.blogger.com/atom/ns#">bpel</category><category domain="http://www.blogger.com/atom/ns#">em</category><category domain="http://www.blogger.com/atom/ns#">humantask</category><category domain="http://www.blogger.com/atom/ns#">soa</category><title>Find Highest Time-Consuming Assignees in Human Task in Oracle SOA</title><description>&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Oracle Enterprise
Manager Fusion Middleware Control provides a comprehensive way of analysing,
managing, monitoring and diagnosing the SOA infrastructure. You can manage the
lifecycle of the SCA composite applications which includes deployment and
testing as well.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;You can find out the
highest time consuming assignees in human task with the help of Oracle
Enterprise Manager Console. Follow the below steps:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ol start=&quot;1&quot; type=&quot;1&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: white; color: #222222; mso-list: l0 level1 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 36.0pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Login to the Oracle Enterprise Manager&amp;nbsp;Fusion
     Middleware Control with administrator account.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: white; color: #222222; mso-list: l0 level1 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 36.0pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Select the SCA composite in Farm on the left side pane.
     Make sure Dashboard tab is open.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;background: white; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; page-break-after: avoid; text-align: center;&quot;&gt;
&lt;a href=&quot;file:///C:/Users/Ganesh/AppData/Local/Temp/WindowsLiveWriter1286139640/supfiles14F064D/image%5b4%5d.png&quot;&gt;&lt;span style=&quot;color: #bb213a; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-no-proof: yes; text-decoration: none; text-underline: none;&quot;&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shapetype id=&quot;_x0000_t75&quot;
 coordsize=&quot;21600,21600&quot; o:spt=&quot;75&quot; o:preferrelative=&quot;t&quot; path=&quot;m@4@5l@4@11@9@11@9@5xe&quot;
 filled=&quot;f&quot; stroked=&quot;f&quot;&gt;
 &lt;v:stroke joinstyle=&quot;miter&quot;/&gt;
 &lt;v:formulas&gt;
  &lt;v:f eqn=&quot;if lineDrawn pixelLineWidth 0&quot;/&gt;
  &lt;v:f eqn=&quot;sum @0 1 0&quot;/&gt;
  &lt;v:f eqn=&quot;sum 0 0 @1&quot;/&gt;
  &lt;v:f eqn=&quot;prod @2 1 2&quot;/&gt;
  &lt;v:f eqn=&quot;prod @3 21600 pixelWidth&quot;/&gt;
  &lt;v:f eqn=&quot;prod @3 21600 pixelHeight&quot;/&gt;
  &lt;v:f eqn=&quot;sum @0 0 1&quot;/&gt;
  &lt;v:f eqn=&quot;prod @6 1 2&quot;/&gt;
  &lt;v:f eqn=&quot;prod @7 21600 pixelWidth&quot;/&gt;
  &lt;v:f eqn=&quot;sum @8 21600 0&quot;/&gt;
  &lt;v:f eqn=&quot;prod @7 21600 pixelHeight&quot;/&gt;
  &lt;v:f eqn=&quot;sum @10 21600 0&quot;/&gt;
 &lt;/v:formulas&gt;
 &lt;v:path o:extrusionok=&quot;f&quot; gradientshapeok=&quot;t&quot; o:connecttype=&quot;rect&quot;/&gt;
 &lt;o:lock v:ext=&quot;edit&quot; aspectratio=&quot;t&quot;/&gt;
&lt;/v:shapetype&gt;&lt;v:shape id=&quot;Picture_x0020_1&quot; o:spid=&quot;_x0000_i1026&quot; type=&quot;#_x0000_t75&quot;
 alt=&quot;image&quot;
 href=&quot;file:///C:\Users\Ganesh\AppData\Local\Temp\WindowsLiveWriter1286139640\supfiles14F064D\image%5b4%5d.png&quot;
 style=&#39;width:601.5pt;height:332.25pt;visibility:visible;mso-wrap-style:square&#39;
 o:button=&quot;t&quot;&gt;
 &lt;v:imagedata src=&quot;file:///C:\Users\Ganesh\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png&quot;
  o:title=&quot;image&quot;/&gt;
&lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;!--[endif]--&gt;&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh03bA70gFWDwpr6SWPue7mgMW96ospuLBy0C_mkX2kAMcSCl8gQ3KA7LzlOrQnGPSiSKAecWUmGN1y2sXE0Lp-1Uatv6u3bFbnfwTfY2bvKkPdszwYbQdYxbNSoF6C-YNcDZYsNQuN2g/s1600/1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh03bA70gFWDwpr6SWPue7mgMW96ospuLBy0C_mkX2kAMcSCl8gQ3KA7LzlOrQnGPSiSKAecWUmGN1y2sXE0Lp-1Uatv6u3bFbnfwTfY2bvKkPdszwYbQdYxbNSoF6C-YNcDZYsNQuN2g/s1600/1.png&quot; height=&quot;352&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoCaption&quot; style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoCaption&quot; style=&quot;text-align: center;&quot;&gt;
Figure &lt;!--[if supportFields]&gt;&lt;span
style=&#39;mso-element:field-begin&#39;&gt;&lt;/span&gt;&lt;span style=&#39;mso-spacerun:yes&#39;&gt; &lt;/span&gt;SEQ
Figure \* ARABIC &lt;span style=&#39;mso-element:field-separator&#39;&gt;&lt;/span&gt;&lt;![endif]--&gt;1&lt;!--[if supportFields]&gt;&lt;span style=&#39;mso-element:
field-end&#39;&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoCaption&quot; style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraph&quot; style=&quot;mso-list: l0 level1 lfo1; tab-stops: list 36.0pt; text-indent: -18.0pt;&quot;&gt;
&lt;!--[if !supportLists]--&gt;3.&lt;span style=&quot;font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;!--[endif]--&gt;Click
on the Human Workflow component in the Component Metrics Panel. As shown in
Figure 1 CIBusinessRuleHumantask is the Human Workflow component.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraph&quot; style=&quot;mso-list: l0 level1 lfo1; tab-stops: list 36.0pt; text-indent: -18.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimytlP-NOov_K6IhdAIzRu_-_62y4qYrSjIr9Rg6Q_UBrfMV9L3n8spBcbm8BEQuxxxbGdlVom7oVWEQ9dd4XmCaZQ4qMXUvtyzUiiYWXRWEYukwpqJpir7qJpJFQlAEkxjEsVPYU7MQ/s1600/2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimytlP-NOov_K6IhdAIzRu_-_62y4qYrSjIr9Rg6Q_UBrfMV9L3n8spBcbm8BEQuxxxbGdlVom7oVWEQ9dd4XmCaZQ4qMXUvtyzUiiYWXRWEYukwpqJpir7qJpJFQlAEkxjEsVPYU7MQ/s1600/2.png&quot; height=&quot;320&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoCaption&quot; style=&quot;text-align: center;&quot;&gt;
Figure &lt;!--[if supportFields]&gt;&lt;span
style=&#39;mso-element:field-begin&#39;&gt;&lt;/span&gt;&lt;span style=&#39;mso-spacerun:yes&#39;&gt; &lt;/span&gt;SEQ
Figure \* ARABIC &lt;span style=&#39;mso-element:field-separator&#39;&gt;&lt;/span&gt;&lt;![endif]--&gt;2&lt;!--[if supportFields]&gt;&lt;span style=&#39;mso-element:
field-end&#39;&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;mso-list: l0 level1 lfo1; tab-stops: list 36.0pt; text-indent: -18.0pt;&quot;&gt;
&lt;!--[if !supportLists]--&gt;4.&lt;span style=&quot;font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;!--[endif]--&gt;You
can check out the various parameters on the HumanTask Component screen as seen
in Figure 2.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;margin-left: 72.0pt; mso-add-space: auto; mso-list: l0 level2 lfo1; tab-stops: list 72.0pt; text-indent: -18.0pt;&quot;&gt;
&lt;!--[if !supportLists]--&gt;1.&lt;span style=&quot;font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b&gt;&lt;i&gt;Highest Time - Consuming Assignees&lt;/i&gt;&lt;/b&gt;&amp;nbsp;- Gives you
the list of assignees with the average time taken on completing a task along
with the mean deviation. The users &lt;i&gt;ian,
kunal and sayan &lt;/i&gt;took 0.051 hours (3.06 minutes), 0.043 hours (2.58 minutes)
and 0.007 hours (0.42 minutes) respectively.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;margin-left: 72.0pt; mso-add-space: auto; mso-list: l0 level2 lfo1; tab-stops: list 72.0pt; text-indent: -18.0pt;&quot;&gt;
&lt;!--[if !supportLists]--&gt;2.&lt;span style=&quot;font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b&gt;&lt;i&gt;Business Outcomes&lt;/i&gt;&lt;/b&gt; – Gives you the bar chart of
the outcomes of the human tasks. There are 7 instances with the outcome as &lt;i&gt;Approve &lt;/i&gt;and 2 instances with &lt;i&gt;Reject&lt;/i&gt; outcome.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;margin-left: 72.0pt; mso-add-space: auto; mso-list: l0 level2 lfo1; tab-stops: list 72.0pt; text-indent: -18.0pt;&quot;&gt;
&lt;!--[if !supportLists]--&gt;3.&lt;span style=&quot;font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;!--[endif]--&gt;&lt;i&gt;&lt;b&gt;Notifications &lt;/b&gt;&lt;/i&gt;– Provides the different types of
notification channels used in notifying about the human workflow.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;margin-left: 72.0pt; mso-add-space: auto; mso-list: l0 level2 lfo1; tab-stops: list 72.0pt; text-indent: -18.0pt;&quot;&gt;
&lt;!--[if !supportLists]--&gt;4.&lt;span style=&quot;font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b&gt;&lt;i&gt;Instance Rate per Min&lt;/i&gt;&lt;/b&gt; – Gives the run time data about
instance throughputs in the last 5 minutes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;margin-left: 72.0pt; mso-add-space: auto; mso-list: l0 level2 lfo1; tab-stops: list 72.0pt; text-indent: -18.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;I hope this post will
help people analyse several aspects&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #222222; font-family: Arial, sans-serif; font-size: 13px;&quot;&gt;of BPEL processes&lt;/span&gt;&lt;span style=&quot;color: #222222; font-family: Arial, sans-serif; font-size: 13px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #222222; font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;(including the basic performance of
assignees ;)) where human interaction is required.&lt;/span&gt;&lt;/div&gt;
</description><link>http://gskblogs.blogspot.com/2014/05/find-highest-time-consuming-assignees.html</link><author>noreply@blogger.com (Anonymous)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh03bA70gFWDwpr6SWPue7mgMW96ospuLBy0C_mkX2kAMcSCl8gQ3KA7LzlOrQnGPSiSKAecWUmGN1y2sXE0Lp-1Uatv6u3bFbnfwTfY2bvKkPdszwYbQdYxbNSoF6C-YNcDZYsNQuN2g/s72-c/1.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754422473924744459.post-4242100051131143516</guid><pubDate>Mon, 28 Apr 2014 03:34:00 +0000</pubDate><atom:updated>2014-04-28T15:05:50.977+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">jps</category><category domain="http://www.blogger.com/atom/ns#">jps-config</category><category domain="http://www.blogger.com/atom/ns#">oaam</category><category domain="http://www.blogger.com/atom/ns#">OID</category><category domain="http://www.blogger.com/atom/ns#">opss</category><category domain="http://www.blogger.com/atom/ns#">pdp</category><category domain="http://www.blogger.com/atom/ns#">Policystore</category><category domain="http://www.blogger.com/atom/ns#">security</category><category domain="http://www.blogger.com/atom/ns#">weblogic</category><title>Solution for JpsException - The default DB policy store is missing for mixed mode</title><description>There are three types of policy store configurations supported by the WebLogic server and it comes with the file based policy store by default. The policy store can be maintained at file level, LDAP level or database level. In production mode, it is not recommended to use file based policy store since it is not as scalable as the other two types and also the LDAP based policy store adds an extra security layer.  &lt;br /&gt;
The WebLogic server can be configured to use any one of the three different types of policy stores. There are two ways by which you can migrate the file based policy store to either database or LDAP based.  &lt;br /&gt;
&lt;li&gt;Using &lt;a href=&quot;http://docs.oracle.com/cd/E12839_01/core.1111/e10043/cfgauthr.htm#CHDGFIIB&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;&lt;em&gt;reassociateSecurityStore&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; WLST command  &lt;/li&gt;
&lt;li&gt;Using &lt;a href=&quot;http://docs.oracle.com/cd/E12839_01/core.1111/e10043/cfgauthr.htm#CHDGFIIB&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;&lt;em&gt;Security Provider Configuration&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; in Enterprise Manager&lt;/li&gt;
&lt;strong&gt;&lt;em&gt;jps-config.xml&lt;/em&gt;&lt;/strong&gt; is the file which stores the security configuration. The default &lt;strong&gt;&lt;em&gt;jpsContext&lt;/em&gt;&lt;/strong&gt; holds the configuration of the entire domain since this file is domain level. In case if you wish to configure application level security, you can embed another &lt;strong&gt;&lt;em&gt;jpsContext &lt;/em&gt;&lt;/strong&gt;in it. Following snippet shows a generic &lt;strong&gt;&lt;em&gt;jpsContext&lt;/em&gt;&lt;/strong&gt; of a WebLogic domain which is reassociated with an Oracle Internet Directory server. Note the &lt;strong&gt;&lt;em&gt;.ldap&lt;/em&gt;&lt;/strong&gt; extensions at the end of several service instance references.  &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas; font-size: x-small;&quot;&gt;&amp;lt;jpsContext name=&quot;default&quot;&amp;gt;&lt;/span&gt;  &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas; font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;serviceInstanceRef ref=&quot;credstore.ldap&quot;/&amp;gt;&lt;/span&gt;  &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas; font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: x-small;&quot;&gt;&amp;lt;serviceInstanceRef ref=&quot;keystore.ldap&quot;/&amp;gt;&lt;/span&gt;  &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas; font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: x-small;&quot;&gt;&amp;lt;serviceInstanceRef ref=&quot;policystore.ldap&quot;/&amp;gt;&lt;/span&gt;  &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas; font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: x-small;&quot;&gt;&amp;lt;serviceInstanceRef ref=&quot;audit.ldap&quot;/&amp;gt;&lt;/span&gt;  &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas; font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: x-small;&quot;&gt;&amp;lt;serviceInstanceRef ref=&quot;trust&quot;/&amp;gt;&lt;/span&gt;  &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas; font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: x-small;&quot;&gt;&amp;lt;serviceInstanceRef ref=&quot;pdp.service&quot;/&amp;gt;&lt;/span&gt;  &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas; font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: x-small;&quot;&gt;&amp;lt;serviceInstanceRef ref=&quot;attribute&quot;/&amp;gt;&lt;/span&gt;  &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas; font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: x-small;&quot;&gt;&amp;lt;serviceInstanceRef ref=&quot;idstore.ldap&quot;/&amp;gt;&lt;/span&gt;  &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas; font-size: x-small;&quot;&gt;&amp;lt;/jpsContext&amp;gt;&lt;/span&gt;&lt;br /&gt;
 Now let’s move to the main reason behind this blog post. Recently I configured one of my Oracle Adaptive Access Manager server to use OID based policy store. It is mandatory to restart the WebLogic server once it is reassociated. During startup, I encountered the following error and the server could not be started:  &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;&amp;lt;Critical&amp;gt; &amp;lt;WebLogicServer&amp;gt; &amp;lt;BEA-000386&amp;gt; &amp;lt;Server subsystem failed. Reason: weblogic.security.SecurityInitializationException: The loading of OPSS java security policy provider failed due to exception, see the exception stack trace or the server log file for root cause. If still see no obvious cause, enable the debug flag -Djava.security.debug=jpspolicy to get more information. Error message: JPS-04001: Cannot read the default policy store. &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;weblogic.security.SecurityInitializationException: The loading of OPSS java security policy provider failed due to exception, see the exception stack trace or the server log file for root cause. If still see no obvious cause, enable the debug flag -Djava.security.debug=jpspolicy to get more information. Error message: JPS-04001: Cannot read the default policy store. &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at weblogic.security.service.CommonSecurityServiceManagerDelegateImpl.loadOPSSPolicy(CommonSecurityServiceManagerDelegateImpl.java:1402) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at weblogic.security.service.CommonSecurityServiceManagerDelegateImpl.initialize(CommonSecurityServiceManagerDelegateImpl.java:1022) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at weblogic.security.service.SecurityServiceManager.initialize(SecurityServiceManager.java:873) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at weblogic.security.SecurityService.start(SecurityService.java:141) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;Truncated. see log file for complete stacktrace &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;Caused By: oracle.security.jps.JpsRuntimeException: JPS-04001: Cannot read the default policy store. &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at oracle.security.jps.az.internal.runtime.service.PDPServiceImpl.&amp;lt;init&amp;gt;(PDPServiceImpl.java:355) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at oracle.security.jps.az.internal.runtime.provider.PDPServiceProvider.getInstance(PDPServiceProvider.java:89) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at oracle.security.jps.internal.core.runtime.ContextFactoryImpl.findServiceInstance(ContextFactoryImpl.java:139) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at oracle.security.jps.internal.core.runtime.ContextFactoryImpl.getContext(ContextFactoryImpl.java:170) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at oracle.security.jps.internal.core.runtime.ContextFactoryImpl.getContext(ContextFactoryImpl.java:191) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;Truncated. see log file for complete stacktrace &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;Caused By: oracle.security.jps.service.policystore.PolicyStoreException &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at oracle.security.jps.az.common.pd.service.PDServiceFinder.getPolicyDistributionService(PDServiceFinder.java:65) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at oracle.security.jps.az.internal.runtime.service.PDPServiceImpl.initializeMixedMode(PDPServiceImpl.java:491) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at oracle.security.jps.az.internal.runtime.service.PDPServiceImpl.initial(PDPServiceImpl.java:467) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at oracle.security.jps.az.internal.runtime.service.PDPServiceImpl.&amp;lt;init&amp;gt;(PDPServiceImpl.java:352) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at oracle.security.jps.az.internal.runtime.provider.PDPServiceProvider.getInstance(PDPServiceProvider.java:89) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;Truncated. see log file for complete stacktrace &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;Caused By: java.lang.reflect.InvocationTargetException &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at java.lang.reflect.Method.invoke(Method.java:597) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at oracle.security.jps.az.common.pd.service.PDServiceFinder.getPolicyDistributionService(PDServiceFinder.java:53) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;Truncated. see log file for complete stacktrace &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;Caused By: java.lang.RuntimeException: oracle.security.jps.JpsException: The default DB policy store is missing for mixed mode. &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at oracle.security.jps.az.internal.management.pd.PD.getPolicyDistributionService(PD.java:104) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at java.lang.reflect.Method.invoke(Method.java:597) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;Truncated. see log file for complete stacktrace &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;Caused By: oracle.security.jps.JpsException: The default DB policy store is missing for mixed mode. &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at oracle.security.jps.az.internal.management.pd.PD.getPolicyDistributionService(PD.java:104) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;at java.lang.reflect.Method.invoke(Method.java:597) &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;Truncated. see log file for complete stacktrace &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Consolas;&quot;&gt;&amp;gt;&amp;nbsp; &lt;/span&gt; &lt;br /&gt;
I have observed that you get this exception (&lt;em&gt;&lt;strong&gt;oracle.security.jps.JpsRuntimeException: JPS-04001: Cannot read the default policy store.&lt;/strong&gt;&lt;/em&gt;) whenever there is any problem in the security configurations of the WebLogic server. I think it is a generic exception which will not let you start the server. To solve this problem, you would need to observe the stacktrace more carefully. Most of the times the observation would lead you to verify the &lt;strong&gt;&lt;em&gt;jps-config.xml&lt;/em&gt;&lt;/strong&gt; file.  &lt;br /&gt;
You can see the exception - &lt;strong&gt;&lt;em&gt;oracle.security.jps.JpsException&lt;/em&gt;&lt;/strong&gt;: The default DB policy store is missing for mixed mode. And from the stacktrace, you can see that it arose from &lt;strong&gt;&lt;em&gt;oracle.security.jps.az.internal.management.pd.PD.getPolicyDistributionService(PD.java:104)&lt;/em&gt;&lt;/strong&gt; which means there is some inconsistency in the policy distribution service. Now you will need to check the PDP instance in the &lt;strong&gt;&lt;em&gt;jps-config.xml&lt;/em&gt;&lt;/strong&gt; file. You can see the policy distribution mode whose value is specified as mixed in my case :  &lt;br /&gt;
&lt;blockquote&gt;
&lt;strong&gt;&lt;em&gt;&amp;lt;property name=&quot;oracle.security.jps.runtime.pd.client.policyDistributionMode&quot; value=&quot;mixed&quot;/&amp;gt;&lt;/em&gt;&lt;/strong&gt;. &lt;/blockquote&gt;
The parameter &lt;strong&gt;&lt;em&gt;oracle.security.jps.runtime.pd.client.policyDistributionMode&lt;/em&gt;&lt;/strong&gt; specifies the mode of policy distribution whose accepted values are &lt;strong&gt;&lt;em&gt;controlled-push&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;non-controlled&lt;/em&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;em&gt;controlled-pull&lt;/em&gt;&lt;/strong&gt;. The value mixed indicates that the mode is a combination of &lt;strong&gt;&lt;em&gt;controlled-pull&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;uncontrolled&lt;/em&gt;&lt;/strong&gt; mode and it expects database policy store. Since I am using OID based policy store, I can get away with this exception by just removing this property from the &lt;strong&gt;&lt;em&gt;pdp.service&lt;/em&gt;&lt;/strong&gt; service instance which means the default distribution mode would be used during and after the initialization of security configurations of the WebLogic domain.  &lt;br /&gt;
In this way, to solve a security initialization problem during WebLogic server startup, you would need to analyse the stacktrace, from which you can identify the service instance or service provider in which there are high chances of inconsistencies to be found.&lt;br /&gt;
 This post is not just about the solution of the issue mentioned in the stacktrace but it gives an approach one should adapt in solving any problem of which you have sufficient stacktrace available.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
</description><link>http://gskblogs.blogspot.com/2014/04/solution-for-jpsexception-default-db.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754422473924744459.post-6895436752243335479</guid><pubDate>Sun, 06 Apr 2014 10:09:00 +0000</pubDate><atom:updated>2014-04-06T15:39:31.111+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">opam</category><category domain="http://www.blogger.com/atom/ns#">security</category><title>A Tour of Oracle Privileged Account Manager</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h4&gt;
Usage management of sensitive accounts of LDAP, Database, Linux or custom
applications using Oracle Privileged Account Manager 11gR2PS1&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;h4&gt;

&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;Downloads:&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;a href=&quot;http://www.oracle.com/technetwork/middleware/id-mgmt/downloads/index.html&quot;&gt;Oracle
Identity Management&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/h4&gt;
&lt;h1&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Overview:&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;
&lt;div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Oracle Privileged Account Manager is a new product added in
the Oracle Identity Management 11gR2 release. As its name suggests, it deals
with the management of privileged accounts. By the word “privileged account” we
mean that these accounts can access the sensitive data in the organization.
Following are the examples of the privileged accounts:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;ul style=&quot;margin-top: 0cm;&quot; type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;Unix root account&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;Database SYSDBA / SYSOPER
     accounts&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;Windows Administrator
     accounts&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;Application accounts which
     access sensitive information&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;System Administrator
     accounts&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Oracle Privileged Account Manager provides an easy to
implement and versatile solution for managing high risk accounts. It lets you
manage the password policies and the usage policies (e.g. time duration for
which you can use the account) for the accounts. It leverages Identity
Connector Framework to integrate with third party applications which are
supported out of the box. It supports the break the glass facility where one
person performs the tasks of another person in case the person is not available
due to some emergency. One of the highlighting features is the ability of OPAM
to provide comprehensive auditing and reporting of who has acted on a
particular account at certain point in time as well as the real time data. It
can be combined with Oracle BI Publisher to generate reports. Figure 1 shows
the overall architecture of OPAM.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;page-break-after: avoid;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXbVCcaqc40eu95uRtYzPEXrnHIDzEDkpBWtMRSat1ddFwajSb20H9e1AkMA5nzgDFdSbixIkFn3MMS2cDQdPTsPonkiUKHDHmD7_GhdHDuAaV5uLHFPNMl4fx7I7p8coPf4aYAVxAOg/s1600/1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXbVCcaqc40eu95uRtYzPEXrnHIDzEDkpBWtMRSat1ddFwajSb20H9e1AkMA5nzgDFdSbixIkFn3MMS2cDQdPTsPonkiUKHDHmD7_GhdHDuAaV5uLHFPNMl4fx7I7p8coPf4aYAVxAOg/s1600/1.png&quot; height=&quot;306&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;page-break-after: avoid;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoCaption&quot; style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;color: #999999;&quot;&gt;Figure &lt;!--[if supportFields]&gt;&lt;span style=&#39;mso-element:
field-begin&#39;&gt;&lt;/span&gt;&lt;span style=&#39;mso-spacerun:yes&#39;&gt; &lt;/span&gt;SEQ Figure \* ARABIC
&lt;span style=&#39;mso-element:field-separator&#39;&gt;&lt;/span&gt;&lt;![endif]--&gt;1&lt;/span&gt;&lt;!--[if supportFields]&gt;&lt;span style=&#39;mso-element:
field-end&#39;&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
There are two ways in which you can access the Oracle Privileged
Account Manager features: Graphical User Interface (GUI) and Command Line
Interface (CLI). The latter can be extended to invoke all CLI supported
operations through Java API which is given this post. The GUI and CLI interact
with the Oracle Privileged Account Manager Server over REST services. The OPAM
Server is a component that handles password requests, generates passwords, and
protects the password keystore. Figure 2 shows the GUI, CLI and other clients
communicate with OPAM using the RESTful interface.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoCaption&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDPPmCX_jbhAGN5KZoKoRcaWWX9Xz2ymg3-jeDQek1Go-f2TgP0JkqQecFtcEyip_l6Tp6l6mFAXXKO9IeiGoMWeanNbLR1pFgH3A2d8BTFeENtD4Wz4fC11v235_afrLV7E9UpxdKdw/s1600/2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDPPmCX_jbhAGN5KZoKoRcaWWX9Xz2ymg3-jeDQek1Go-f2TgP0JkqQecFtcEyip_l6Tp6l6mFAXXKO9IeiGoMWeanNbLR1pFgH3A2d8BTFeENtD4Wz4fC11v235_afrLV7E9UpxdKdw/s1600/2.png&quot; height=&quot;324&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoCaption&quot;&gt;
&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoCaption&quot; style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;color: #999999;&quot;&gt;Figure &lt;!--[if supportFields]&gt;&lt;span style=&#39;mso-element:
field-begin&#39;&gt;&lt;/span&gt;&lt;span style=&#39;mso-spacerun:yes&#39;&gt; &lt;/span&gt;SEQ Figure \* ARABIC
&lt;span style=&#39;mso-element:field-separator&#39;&gt;&lt;/span&gt;&lt;![endif]--&gt;2&lt;/span&gt;&lt;!--[if supportFields]&gt;&lt;span style=&#39;mso-element:
field-end&#39;&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;h1&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Authentication:&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;The authentication framework of the Oracle Privileged
Account Manager leverages SAML based token authentication. It can be integrated
with Oracle Access Manager Single Sign On. OPAM CLI Supports HTTP Basic
Authentication over SSL to connect to OPAM Server.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h1&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Authorization:&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;There are several Admin Roles supported by OPAM to restrict
the sensitive usage of the application:&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;ul style=&quot;margin-top: 0cm;&quot; type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;Application Configurator –
     OPAM_APPLICATION_CONFIGURATOR&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;Security Administrator –
     OPAM_SECURITY_ADMIN&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;Security Auditor –
     OPAM_SECURITY_AUDITOR&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;User Manager –
     OPAM_USER_MANAGER&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h1&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Administration:&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2 style=&quot;margin-left: 36.0pt; mso-list: l1 level1 lfo3; text-indent: -18.0pt;&quot;&gt;
&lt;!--[if !supportLists]--&gt;1.&lt;span style=&quot;font-size: 7pt; font-weight: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;!--[endif]--&gt;Targets:&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
A target in OPAM is a system which contains users, and
relies on users, system, or application accounts. You need to register the
target system in order to manage the accounts associated with the target.&amp;nbsp; Currently as of release 11.1.2.1.0 OPAM
supports four types of pre-built targets. You can see the four supported
targets in Figure 3.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJzZRGnkpIG1XiJ_5o4PuXEq-wvE5VF8uJaSvv13n0TqSOP4-vSPXYjr4xKw407Pfw3O3Anz-nvP3Pa0gEGTu-4yux3FKVgob4VwFqsN0u0BE30cpIrBd1Z7jtoPcBVssnAiY94yRNYQ/s1600/3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJzZRGnkpIG1XiJ_5o4PuXEq-wvE5VF8uJaSvv13n0TqSOP4-vSPXYjr4xKw407Pfw3O3Anz-nvP3Pa0gEGTu-4yux3FKVgob4VwFqsN0u0BE30cpIrBd1Z7jtoPcBVssnAiY94yRNYQ/s1600/3.png&quot; height=&quot;236&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoCaption&quot; style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;color: #999999;&quot;&gt;Figure &lt;!--[if supportFields]&gt;&lt;span style=&#39;mso-element:
field-begin&#39;&gt;&lt;/span&gt;&lt;span style=&#39;mso-spacerun:yes&#39;&gt; &lt;/span&gt;SEQ Figure \* ARABIC
&lt;span style=&#39;mso-element:field-separator&#39;&gt;&lt;/span&gt;&lt;![endif]--&gt;3&lt;/span&gt;&lt;!--[if supportFields]&gt;&lt;span style=&#39;mso-element:
field-end&#39;&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Generally adding a target involves providing the values of
the host, port, domain and other minimum useful information required to
retrieve the accounts from the target system. The two targets needs extra
attention - The &lt;b&gt;database &lt;/b&gt;target is
supported for Oracle, MSSQL, MYSQL, DB2 and Sybase. &lt;b&gt;Lockbox &lt;/b&gt;allows us to manage a specific target without configuring
any connector.&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2 style=&quot;margin-left: 36.0pt; mso-list: l1 level1 lfo3; text-indent: -18.0pt;&quot;&gt;
&lt;!--[if !supportLists]--&gt;2.&lt;span style=&quot;font-size: 7pt; font-weight: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;!--[endif]--&gt;Accounts:&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
An account represents the privileged account on a target
system. OPAM does not create or delete accounts on the target system; it only
manages the existing accounts. When a new account is added in OPAM server, only
a reference to that account gets created. Deletion of account from OPAM does
not delete the account from the target. OPAM enables you to specify whether an
account is shared or not shared. Shared accounts enable multiple users to use
the account at the same time. Default (unshared) accounts can be used by only
one user at a time. Below Figure 4 shows the database accounts containing the
word &lt;i&gt;sys &lt;/i&gt;in a database target.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCqrpEFmI-waTpaFvlsNuakaClK4VUUgw-WzzEOfpZ-gnKBxb0oe4CsTG33hL5E_C_Q1Cvn9k0rD2wiTOqAnno6a9vhgYaY0smnY9AoNvi8IjA1RlN0ipxdSxDzGs1SEJ-0f6_fakuBg/s1600/4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCqrpEFmI-waTpaFvlsNuakaClK4VUUgw-WzzEOfpZ-gnKBxb0oe4CsTG33hL5E_C_Q1Cvn9k0rD2wiTOqAnno6a9vhgYaY0smnY9AoNvi8IjA1RlN0ipxdSxDzGs1SEJ-0f6_fakuBg/s1600/4.png&quot; height=&quot;308&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoCaption&quot; style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;color: #999999;&quot;&gt;Figure &lt;!--[if supportFields]&gt;&lt;span style=&#39;mso-element:
field-begin&#39;&gt;&lt;/span&gt;&lt;span style=&#39;mso-spacerun:yes&#39;&gt; &lt;/span&gt;SEQ Figure \* ARABIC
&lt;span style=&#39;mso-element:field-separator&#39;&gt;&lt;/span&gt;&lt;![endif]--&gt;4&lt;/span&gt;&lt;!--[if supportFields]&gt;&lt;span style=&#39;mso-element:
field-end&#39;&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2 style=&quot;margin-left: 36.0pt; mso-list: l1 level1 lfo3; text-indent: -18.0pt;&quot;&gt;
&lt;!--[if !supportLists]--&gt;3.&lt;span style=&quot;font-size: 7pt; font-weight: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;!--[endif]--&gt;Grantee:&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Grantees are users or groups that have been granted access
to one or more privileged accounts. Users or groups are assigned to a
privileged account in the Account tab. As you can see in Figure 5, user.0 is a
grantee for the account DEVOAM_OPAM and there is no group specified.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoCaption&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhF4xeL-lR01-srTSwml0f12uRQ24LUCuDSiayXTBLh7HA2rirgDhBuULDz6x-BOHGBkjR0NmiO0uITO2RUkUm7b_9nFvfgqsdPiQg8JmzSH9GbuZal-hp9HixeT9wLocw1_jCTPra5AA/s1600/5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhF4xeL-lR01-srTSwml0f12uRQ24LUCuDSiayXTBLh7HA2rirgDhBuULDz6x-BOHGBkjR0NmiO0uITO2RUkUm7b_9nFvfgqsdPiQg8JmzSH9GbuZal-hp9HixeT9wLocw1_jCTPra5AA/s1600/5.png&quot; height=&quot;258&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoCaption&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoCaption&quot; style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;color: #999999;&quot;&gt;Figure &lt;!--[if supportFields]&gt;&lt;span style=&#39;mso-element:
field-begin&#39;&gt;&lt;/span&gt;&lt;span style=&#39;mso-spacerun:yes&#39;&gt; &lt;/span&gt;SEQ Figure \* ARABIC
&lt;span style=&#39;mso-element:field-separator&#39;&gt;&lt;/span&gt;&lt;![endif]--&gt;5&lt;/span&gt;&lt;!--[if supportFields]&gt;&lt;span style=&#39;mso-element:
field-end&#39;&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2 style=&quot;margin-left: 36.0pt; mso-list: l1 level1 lfo3; text-indent: -18.0pt;&quot;&gt;
&lt;!--[if !supportLists]--&gt;4.&lt;span style=&quot;font-size: 7pt; font-weight: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;!--[endif]--&gt;Check out and Check in:&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Administrators or end users can check out an account if they
have been granted access to that account. When a user checks out an account, by
providing a comment, it gets the access to the password of the account. The
password is generated based on the Password Policy attached to the privileged
account. On successful checking out, unshared accounts become unavailable for
other users to check out until the account is checked in again by the user.
Checking in of account resets the password of the account. In case of shared
accounts, the password is reset only when all the users check in the account. Figure
6 shows that the accounts which are granted to the logged in user are checked
in and ready to be checked out.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoCaption&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSeVA0KduQC6gDSMm7kG91D68uTDczFrfDG7tE7IdlZy3-aH0X9cxftyYr7gN77bnBpJjX3ZUQG2LFNBWTjLYlW3E52YzK05Tz7zM1IgAzvrcC2hWNnI4U96g6zONnECGlttFyqTIM7Q/s1600/6.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSeVA0KduQC6gDSMm7kG91D68uTDczFrfDG7tE7IdlZy3-aH0X9cxftyYr7gN77bnBpJjX3ZUQG2LFNBWTjLYlW3E52YzK05Tz7zM1IgAzvrcC2hWNnI4U96g6zONnECGlttFyqTIM7Q/s1600/6.png&quot; height=&quot;185&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoCaption&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoCaption&quot; style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;color: #999999;&quot;&gt;Figure &lt;!--[if supportFields]&gt;&lt;span style=&#39;mso-element:
field-begin&#39;&gt;&lt;/span&gt;&lt;span style=&#39;mso-spacerun:yes&#39;&gt; &lt;/span&gt;SEQ Figure \* ARABIC
&lt;span style=&#39;mso-element:field-separator&#39;&gt;&lt;/span&gt;&lt;![endif]--&gt;6&lt;/span&gt;&lt;!--[if supportFields]&gt;&lt;span style=&#39;mso-element:
field-end&#39;&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2 style=&quot;margin-left: 36.0pt; mso-list: l1 level1 lfo3; text-indent: -18.0pt;&quot;&gt;
&lt;!--[if !supportLists]--&gt;5.&lt;span style=&quot;font-size: 7pt; font-weight: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;!--[endif]--&gt;Password Policies:&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
The password policies capture the password construction
rules enforced by a specific target on an associated privileged account. Every
privileged account must have an associated password policy. OPAM provides
Default Password Policy. However you can create custom password policies as per
your requirements.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2 style=&quot;margin-left: 36.0pt; mso-list: l1 level1 lfo3; text-indent: -18.0pt;&quot;&gt;
&lt;!--[if !supportLists]--&gt;6.&lt;span style=&quot;font-size: 7pt; font-weight: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;!--[endif]--&gt;Usage Policies:&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
The usage policies define when and how a privileged account
can be used by a grantee. These are applied at the level of a grant. OPAM
provides Default Usage Policy. However you can create custom usage policies as
per your requirements.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2 style=&quot;margin-left: 36.0pt; mso-list: l1 level1 lfo3; text-indent: -18.0pt;&quot;&gt;
&lt;!--[if !supportLists]--&gt;7.&lt;span style=&quot;font-size: 7pt; font-weight: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;!--[endif]--&gt;Reports:&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
The reports provide the real time information about the
status of accounts and targets being managed by OPAM. OPAM provides support for
3 types of reports:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;ul style=&quot;margin-top: 0cm;&quot; type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;Deployment Reports : View
     information about how targets and privileged accounts are currently
     deployed&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;Usage Reports : View
     information about how privileged accounts are currently being used in the
     deployment&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;Failure Reports : View
     information about current state of target and account failures&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2 style=&quot;margin-left: 36.0pt; mso-list: l1 level1 lfo3; text-indent: -18.0pt;&quot;&gt;
&lt;!--[if !supportLists]--&gt;8.&lt;span style=&quot;font-size: 7pt; font-weight: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;!--[endif]--&gt;ICF Connectors:&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Connectors enable OPAM to interact with the third party
target systems. OPAM leverages connectors that are compliant with the ICF standard.
OPAM can use custom connectors to interact with the target systems other than
the traditional LDAP, database and UNIX system. After the connector is
developed and ready to be integrated with OPAM, the connector bundle needs to
be put in a location where OPAM can access it at runtime. All the connector
related configurations are stored in the file&amp;nbsp;&lt;i&gt;ORACLE_HOME/opam/config/opam-config.xml &lt;/i&gt;which schematically is
governed by &lt;i&gt;ORACLE_HOME/opam/config&lt;/i&gt;/&lt;i&gt;opam-config.xsd. &lt;/i&gt;If you have made
correct &lt;i&gt;&amp;lt;connectorConfig&amp;gt;&lt;/i&gt;
entries in opam-config.xml, you will see the new target in the Target dropdown
after the server is restarted.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h1&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Command Line Interface:&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Oracle Privileged Account Manager lets you interact with the
OPAM server via HTTP Basic Authentication over SSL. You can perform certain
tasks via command line which you can do via GUI. CLI can be launched by
ORACLE_HOME/opam/bin/opam.sh (UNIX) or ORACLE_HOME/opam/bin/opam.bat (Windows)
. Supported commands are - &lt;i&gt;addaccount,
addtarget, checkin, checkout, displayallaccounts, displayallgroups,
displayalltargets, displayallusers, displaycheckedoutaccounts,
displaydomaintree, displaytargettypetree, grantgroupaccess, grantuseraccess,
removeaccount, removegroupaccess, removetarget, removeuseraccess,
retrieveaccount, retrievegrantees, retrievegroup, retrievetarget, retrieveuser,
searchaccount, searchgroup, searchtarget, searchuser, showpassword&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Following command shows an example of how to issue &lt;i&gt;addaccount&lt;/i&gt; command:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;pre style=&quot;background: white; text-indent: 45.8pt;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;-&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=&quot;font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11.0pt; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-font-size: 10.0pt;&quot;&gt;url https://hostname:sslport/opam -u &amp;lt;username&amp;gt; [-p &amp;lt;password&amp;gt;] [debug] -x addtarget -targetname &amp;lt;targetname&amp;gt; -host &amp;lt;hostname&amp;gt; -port 22 -organization &amp;lt;organization&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/pre&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h1&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Interacting with RESTful Interface:&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
OPAM Server has exposed certain RESTful interfaces which are
consumed by the GUI and also can be incorporated with other applications which
provide the ability to consume REST services. Using RESTful interface of OPAM,
you can perform several operations on Targets, Accounts, Users, Groups,
Password and Usage Policies. Following is the Java code sample showing the
basic REST operations that you can perform:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;OPAMRestClient.java&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;package com.mycompany.opam.demo.rest.client;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;import java.io.IOException;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;import java.io.InputStream;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;import java.io.InputStreamReader;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;import java.net.MalformedURLException;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;import java.net.URL;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;import javax.net.ssl.HostnameVerifier;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;import javax.net.ssl.HttpsURLConnection;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;import javax.net.ssl.SSLSession;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;import org.apache.commons.codec.binary.Base64;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;/**&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;* @author Ganesh&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;* &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;*/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;public class OPAMRestClient {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /**&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* @param args&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;*/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static
void main(String[] args) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OPAMRestClient
client = new OPAMRestClient();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; client.authAndGet();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; client.checkOutAccount();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; client.checkInAccount();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void
authAndGet() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String
webPage = &quot;https://192.168.1.31:18102/opam/&quot;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String
result = execute(webPage, &quot;opamadmin&quot;, &quot;welcome1&quot;,
&quot;GET&quot;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;***
RESULT ***&quot;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(result);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void
checkOutAccount() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String
webPage =
&quot;https://192.168.1.31:18102/opam/account/3a32f71b320645f7b9b594fc8e864089/checkout&quot;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String
result = execute(webPage, &quot;user.0&quot;, &quot;welcome1&quot;,
&quot;PUT&quot;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;***
RESULT ***&quot;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(result);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void
checkInAccount() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String
webPage = &quot;https://192.168.1.31:18102/opam/account/3a32f71b320645f7b9b594fc8e864089/checkin&quot;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String
result = execute(webPage, &quot;user.0&quot;, &quot;welcome1&quot;,
&quot;PUT&quot;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;***
RESULT ***&quot;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(result);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /**&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* @param webPage&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* @return&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* @throws MalformedURLException&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* @throws IOException&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;*/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private
String execute(String webPage, String name, String password,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String
requestMethod) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String
authString = name + &quot;:&quot; + password;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;auth
string: &quot; + authString);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[]
authEncBytes = Base64.encodeBase64(authString.getBytes());&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String
authStringEnc = new String(authEncBytes);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;Base64
encoded auth string: &quot; + authStringEnc);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; URL
url;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpsURLConnection
httpsCon = null;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String
result = null;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try
{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url
= new URL(webPage);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; httpsCon
= (HttpsURLConnection) url.openConnection();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; httpsCon.setRequestMethod(requestMethod);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; httpsCon.setHostnameVerifier(new
HostnameVerifier() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public
boolean verify(String hostname, SSLSession session) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return
true;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; httpsCon.setRequestProperty(&quot;Authorization&quot;,
&quot;Basic &quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; +
authStringEnc);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; httpsCon.connect();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InputStream
is = httpsCon.getInputStream();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InputStreamReader
isr = new InputStreamReader(is);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int
numCharsRead;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char[]
charArray = new char[1024];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StringBuffer
sb = new StringBuffer();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while
((numCharsRead = isr.read(charArray)) &amp;gt; 0) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sb.append(charArray,
0, numCharsRead);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result
= sb.toString();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
catch (MalformedURLException e) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch
(IOException e) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
finally {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if
(httpsCon != null) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; httpsCon.disconnect();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return
result;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 72.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 8.0pt;&quot;&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h1&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Integration with Oracle Identity Management solutions:&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Oracle Privileged Account Manager can be integrated with
Oracle Identity Governance, Oracle Access Management and Oracle Directory
Services – the three building tiers of Oracle Identity Management Suite. OPAM
provides the ability to manually request access to accounts and to get
approvals for requests in Oracle Identity Manager. OPAM can be protected by
enabling Single Sign On using a Webgate agent in Oracle Access Manager.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h1&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Backend:&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Following is a list of tables from DEV_OPAM schema used by
the Oracle Privileged Account Manager:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;i&gt;TARGET, ACCOUNT,
GRANTS, USGPOL, PWDPOL, FAILURE, ACTSESSION, FLEXFIELD, FLEXOBJ, FLEXSECFIELD&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
The Metadata information and passwords managed by OPAM are
encrypted and persisted in the Oracle Database. It is recommended to leverage
Oracle Database Vault and Transparent Data Encryption (TDE) for additional
security.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h1&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Conclusion:&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Oracle Privileged Account Manager is a complete product
which has a comprehensive set of features that are required to manage the
password lifecycle of privileged accounts – an &amp;nbsp;activity for which there was no solution
available earlier. OPAM delivers more value when used in conjunction with other
Oracle Identity Management Products.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h1&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;References:&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;a href=&quot;http://www.oracle.com/technetwork/middleware/id-mgmt/overview/opam-wp-11gr2-1697093.pdf&quot;&gt;http://www.oracle.com/technetwork/middleware/id-mgmt/overview/opam-wp-11gr2-1697093.pdf&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;a href=&quot;http://www.oracle.com/technetwork/middleware/id-mgmt/overview/opam-ds-11gr2-1697091.pdf&quot;&gt;http://www.oracle.com/technetwork/middleware/id-mgmt/overview/opam-ds-11gr2-1697091.pdf&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;a href=&quot;http://docs.oracle.com/cd/E27559_01/admin.1112/e27152/toc.htm&quot;&gt;http://docs.oracle.com/cd/E27559_01/admin.1112/e27152/toc.htm&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</description><link>http://gskblogs.blogspot.com/2014/04/a-tour-of-oracle-privileged-account.html</link><author>noreply@blogger.com (Anonymous)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXbVCcaqc40eu95uRtYzPEXrnHIDzEDkpBWtMRSat1ddFwajSb20H9e1AkMA5nzgDFdSbixIkFn3MMS2cDQdPTsPonkiUKHDHmD7_GhdHDuAaV5uLHFPNMl4fx7I7p8coPf4aYAVxAOg/s72-c/1.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754422473924744459.post-5989572786072965638</guid><pubDate>Wed, 19 Dec 2012 10:25:00 +0000</pubDate><atom:updated>2013-01-15T17:27:00.933+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">oim oim11gr2 UserManager OIMClient</category><title>OIM 11.1.2.0.0 (11gR2) API - UserManager</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
In this post, I will explain UserManager service API provided by Oracle Identity Manager 11.1.2.0.0 (11gR2). OIM API can be used to develop clients which can communicate with OIM to perform various operations on OIM objects.&lt;br /&gt;
&lt;br /&gt;
OIM supports two ways by which clients can be developed. They are :&lt;br /&gt;
1.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;oracle.iam.platform.OIMClient&lt;/b&gt;&lt;br /&gt;
2.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;Thor.API.tcUtilityFactory&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;i&gt;Thor.API.tcUtilityFactory&lt;/i&gt; API was supported in the previous versions of OIM and it is still provided in the latest releases. But&amp;nbsp;&lt;a href=&quot;http://docs.oracle.com/cd/E27559_01/apirefs.1112/e28159/toc.htm&quot; target=&quot;_blank&quot;&gt;&lt;i&gt;oracle.iam.platform.OIMClient&lt;/i&gt;&lt;/a&gt; is recommneded by Oracle and it should be preferred over tcUtilityFactory as it provides more robust way to build clients.&lt;br /&gt;
Here I will give you a few code snippets which are used to connect to OIM server and perform operations on OIM objects.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;u&gt;&lt;b&gt;Setup&lt;/b&gt;&lt;/u&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Copy &amp;lt;IDM_HOME&amp;gt;/server/client/oimclient.zip on local machine. Extract the zip file. The extracted folder contains conf, lib and oimclient.jar.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Add oimclient.jar and libraries from lib folder to the classpath of the client project. The project should have following jars in the classpath :&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;&lt;ul&gt;
&lt;li&gt;commons-logging.jar&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;spring.jar&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;oimclient.jar&lt;/li&gt;
&lt;li&gt;jrf-api.jar&lt;/li&gt;
&lt;li&gt;wlfullclient.jar&lt;/li&gt;
&lt;/ul&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Generation of wlfullclient.jar is explained at this location : &lt;i&gt;&lt;a href=&quot;http://docs.oracle.com/cd/E12840_01/wls/docs103/client/jarbuilder.html&quot;&gt;http://docs.oracle.com/cd/E12840_01/wls/docs103/client/jarbuilder.html&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;ol&gt;&lt;ul&gt;
&lt;/ul&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;Make sure JDK 1.6 and ANT 1.7 are present in the classpath &lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;li&gt;&lt;u&gt;&lt;b&gt;Initialize&lt;/b&gt;&lt;/u&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Create OIMClient instance by preparing the environment:&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Hashtable&amp;lt;Object, Object&amp;gt; env = new Hashtable&amp;lt;Object, Object&amp;gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; env.put(OIMClient.JAVA_NAMING_FACTORY_INITIAL, &quot;weblogic.jndi.WLInitialContextFactory&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; env.put(OIMClient.JAVA_NAMING_PROVIDER_URL, &quot;t3://localhost:14000&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.setProperty(&quot;java.security.auth.login.config&quot;, &quot;/home/ganesh/com.gsk.oim/config/authwl.conf&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.setProperty(&quot;OIM.AppServerType&quot;, &quot;wls&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.setProperty(&quot;APPSERVER_TYPE&quot;, &quot;wls&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; OIMClient oimClient = new OIMClient(env);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; &lt;/span&gt;&lt;/div&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;u&gt;&lt;b&gt;Login&lt;/b&gt;&lt;/u&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Once OIMClient is instantiated, the instance is used to login by providing correct username and password. login() method throws LoginException if login is unsuccessful:&lt;/li&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; oimClient.login(&quot;xelsysadm&quot;, &quot;Welcome1&quot;.toCharArray(), env);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; &lt;/span&gt;&lt;/div&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;u&gt;&lt;b&gt;Lookup UserManager Service&lt;/b&gt;&lt;/u&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;UserManager is the Service class which is mainly used to perform various User operations. It can be instantiated in the following manner: &lt;/li&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; UserManager userManager = oimClient.getService(UserManager.class);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/ul&gt;
&lt;/ol&gt;
On creation of userManager instance, we have an object which can connect and perform changes in OIM server. I will discuss a few basic scenarios which are widely used by OIM clients:&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;u&gt;User Creation&lt;/u&gt;&lt;/b&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
As I said earlier, UserManager is the instance which is used to perform ,as the name suggests, User specific actions. To create a User, we must pass a &lt;a href=&quot;http://docs.oracle.com/cd/E27559_01/apirefs.1112/e28159/toc.htm&quot; target=&quot;_blank&quot;&gt;oracle.iam.identity.usermgmt.vo.User&lt;/a&gt; object to UserManager&#39;s create method. It takes UserId and a HashMap of user attributes as input. Following code snippet shows User Creation:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;font-size: x-small;&quot;&gt;HashMap&amp;lt;String, Object&amp;gt; userAttributeValueMap = new HashMap&amp;lt;String, Object&amp;gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; userAttributeValueMap.put(&quot;act_key&quot;, new Long(1));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; userAttributeValueMap.put(&quot;User Login&quot;, userId);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; userAttributeValueMap.put(&quot;First Name&quot;, &quot;Ganesh&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; userAttributeValueMap.put(&quot;Last Name&quot;, &quot;Kamble&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; userAttributeValueMap.put(&quot;Email&quot;, &quot;ganesh.kamble@abc.com&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; userAttributeValueMap.put(&quot;usr_password&quot;, &quot;P1ssword&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; userAttributeValueMap.put(&quot;Role&quot;, &quot;OTHER&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; User user = new User(&quot;Ganesh&quot;, userAttributeValueMap);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; userManager.create(user);&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Here we have created a userAttributeValueMap which stores mandatory attributes required for User Creation through OIM API. User object is created using an Unique Id and the HashMap. We pass this User object to UserManager.create(user) method. It returns UserManagerResult. We can verify the status by using UserManagerResult.getStatus() method.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;u&gt;&lt;b&gt;User Retrieval&lt;/b&gt;&lt;/u&gt;&lt;/li&gt;
&lt;/ul&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; To retrieve the details of a user, UserManager provides several methods named getDetails() distinguished by the input parameters. I will take a method which takes input as userid, a set of attributes which are to be returned for each user and a boolean flag specifying whether the userid is the user login. If blank Set is given in the input, the method returns all the attributes of the User.&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set&amp;lt;String&amp;gt; resAttrs = new HashSet&amp;lt;String&amp;gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; User user = userManager.getDetails(&quot;Ganesh&quot;, resAttrs, true); &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;u&gt;&lt;b&gt;User Update&lt;/b&gt;&lt;/u&gt;&lt;/li&gt;
&lt;/ul&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UserManager provides methods named modify to update User details in OIM. I will talk about the method which takes User Object as input. In the following code snippet, I have retrieved a User with the loginId &quot;Ganesh&quot; and updated it with the changed user attributes&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;span style=&quot;font-size: x-small;&quot;&gt;Set&amp;lt;String&amp;gt; resAttrs = new HashSet&amp;lt;String&amp;gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; User retrievedUser = userManager.getDetails(&quot;Ganesh&quot;, resAttrs, true);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; HashMap&amp;lt;String, Object&amp;gt; userAttributeValueMap = new HashMap&amp;lt;String, Object&amp;gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; userAttributeValueMap.put(&quot;act_key&quot;, new Long(1));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; userAttributeValueMap.put(&quot;User Login&quot;, userId);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; userAttributeValueMap.put(&quot;First Name&quot;, &quot;Ganesh&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; userAttributeValueMap.put(&quot;Last Name&quot;, &quot;Kamble&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; userAttributeValueMap.put(&quot;Email&quot;, &quot;ganesh.kamble@xyz.com&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; userAttributeValueMap.put(&quot;usr_password&quot;, &quot;P@ssword&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; userAttributeValueMap.put(&quot;Role&quot;, &quot;Other&quot;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; User user = new User((String) retrievedUser.getAttribute(&quot;User Login&quot;), userAttributeValueMap);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; userManager.modify(user); &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;u&gt;&lt;b&gt;User Search&lt;/b&gt;&lt;/u&gt; &lt;/li&gt;
&lt;/ul&gt;
OIM provides the support to search Users based on a particular criteria. We build a SearchCriteria based on which the Users need to be inquired, pass the SearchCriteria instance to UserManager.search() method as shown below:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;span style=&quot;font-size: x-small;&quot;&gt;SearchCriteria searchCriteria = new SearchCriteria(&quot;Email&quot;, &quot;ganesh.kamble@xyz.com&quot;, SearchCriteria.Operator.EQUAL);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Set&amp;lt;String&amp;gt; attrNames = null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; HashMap&amp;lt;String, Object&amp;gt; mapParams = new HashMap&amp;lt;String, Object&amp;gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mapParams.put(&quot;STARTROW&quot;, 0);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mapParams.put(&quot;ENDROW&quot;, 1);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; List&amp;lt;User&amp;gt; users = null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; users = userManager.search(searchCriteria, attrNames, mapParams);&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Here I have prepared a SearchCriteria which indicates the Email of the User should be EQUAL to ganesh.kamble@xyz.com. mapParams are the ConfigurationParameters which provides the functionality of more granular search. They can be STARTROW, ENDROW, SORTEDBY and SORTORDER. Here I have used STARTROW and ENDROW which indicates which subset of the complete result should be fetched. SORTEDBY sorts the result by User Login by default. It can be changed to the desired attribute. SORTEDORDER can be SortOrder.DESCENDING or SortOrder.ASCENDING latter being the default. &lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;u&gt;&lt;b&gt;Lock/Unlock User Account&lt;/b&gt;&lt;/u&gt;&lt;/li&gt;
&lt;/ul&gt;
The following methods locks/unlocks a particular user account.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;font-size: x-small;&quot;&gt;userManager.lock(userId, true, true);&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Here first parameter is the id of the user to be locked. Second parameter indicates whether its a manual lock (true) or system lock (false). And third parameter indicates whether the userId is the UserLogin Id.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;font-size: x-small;&quot;&gt; userManager.unlock(userId, true);&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Here first parameter is the id of the user to be locked. Second parameter is true if the userId is the UserLogin id. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; In this post, I have tried to cover some basic user operations on User entity. Each of the above operation comes in different flavours. You can find the entire set of OIM API at location : &lt;a href=&quot;http://docs.oracle.com/cd/E27559_01/apirefs.1112/e28159/toc.htm&quot;&gt;&lt;i&gt;http://docs.oracle.com/cd/E27559_01/apirefs.1112/e28159/toc.htm&lt;/i&gt;&lt;/a&gt; . The detailed information on how to use the API is explained at this location : &lt;a href=&quot;http://docs.oracle.com/cd/E27559_01/dev.1112/e27150/apis.htm#BCFGCGHI&quot;&gt;&lt;i&gt;http://docs.oracle.com/cd/E27559_01/dev.1112/e27150/apis.htm#BCFGCGHI&lt;/i&gt;&lt;/a&gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; The set of attributes which OIM understands is given below. These attributes can be passed in the HashMap as an input. Also when you inquire the user, these attributes will be returned.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;i&gt;[ FA Territory, Employee Number, Middle Name, Manually Locked, usr_disabled, Display Name, LDAP Organization, usr_locked, Currency, Time Format, usr_created, usr_deprovisioning_date, Full Name, Country, Accessibility Mode, usr_pwd_expire_date, usr_pwd_cant_change, Email, usr_data_level, Automatically Delete On, Locked On, usr_login_attempts_ctr, Last Name, First Name, Locality Name, usr_policy_update, Street, Embedded Help, Department Number, usr_createby, usr_pwd_warned, Manager Login, Telephone Number, Manager First Name, usr_updateby, Home Phone, LDAP Organization Unit, usr_pwd_min_age_date, User Login, Title, Role, FA Language, Password Generated, usr_provisioning_date, usr_pwd_warn_date, Organization Name, usr_locale, usr_update, Date Format, usr_timezone, Mobile, usr_pwd_reset_attempts_ctr, End Date, Pager, usr_deprovisioned_date, Color Contrast, PO Box, usr_create, LDAP GUID, Xellerate Type, usr_change_pwd_at_next_logon, usr_provisioned_date, Common Name, Start Date, usr_manager_key, Number Format, usr_pwd_expired, Hire Date, User Name Preferred Language, Home Postal Address, Font Size, Manager Last Name, Description, Fax, Postal Code, act_key, usr_key, Common Name Generated, Status, Generation Qualifier, Postal Address, State, Manager Display Name, usr_pwd_never_expires, Initials, usr_pwd_must_change, LDAP DN ]&lt;/i&gt;&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;

&lt;/ol&gt;
&lt;/div&gt;
</description><link>http://gskblogs.blogspot.com/2012/12/oim-111200-11gr2-api-usermanager.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754422473924744459.post-1453192939057999790</guid><pubDate>Thu, 18 Oct 2012 09:43:00 +0000</pubDate><atom:updated>2012-10-18T15:13:53.049+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">jax-ws securitypolicy soap token wss client standalone soaphandler security</category><title>How to invoke secured JAX-WS web service from a standalone client</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;In this post I will explain the procedure of invoking secured JAX-WS web service from a standalone java client. It explains the problems you may face during the process.&lt;br /&gt;
There are several ways by which you can invoke a secured web service. I will explain it in two ways here. In this example I have a sample web service which is protected by the policy : wss_saml_or_username_token_service_policy.&lt;br /&gt;
I will not get the desired response if I try to invoke the protected web service without providing a proper username token in the soap header.&lt;br /&gt;
In weblogic, you can attach policies to web services with the help of owsm. Following block shows the snippet to be present in the soap header in order to get the client asserted by the web service provider which is protected by wss_saml_or_username_token_service_policy policy :&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;lt;S:Header&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;wsse:Security xmlns:wsse=&quot;http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd&quot; S:mustUnderstand=&quot;1&quot;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;wsse:UsernameToken xmlns:wsu=&quot;http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd&quot; wsu:Id=&quot;UsernameToken-Kr9QjWbqpQgxYI4CDWNxCg22&quot;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;wsse:Username&amp;gt;administrator&amp;lt;/wsse:Username&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;wsse:Password Type=&quot;http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText&quot;&amp;gt;Passw0rd&amp;lt;/wsse:Password&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;/wsse:UsernameToken&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;/wsse:Security&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;lt;/S:Header&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
The username in this case is &#39;administrator&#39; and password is &#39;Passw0rd&#39;&lt;br /&gt;
&lt;br /&gt;
Here are the two ways in which you can add the above block in the header of the soap request on the client side :&lt;br /&gt;
1.&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;First way is to add credentials in the RequestContext of the client port :&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; List&amp;lt;CredentialProvider&amp;gt; credProviders =&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; new ArrayList&amp;lt;CredentialProvider&amp;gt;();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; String username = &quot;administrator&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; String password = &quot;Passw0rd&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; CredentialProvider cp =&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; new ClientUNTCredentialProvider(username.getBytes(),&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; password.getBytes());&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; credProviders.add(cp);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Map&amp;lt;String, Object&amp;gt; requestContext =&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ((BindingProvider)sampleWebServicePort).getRequestContext();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; requestContext.put(BindingProvider.USERNAME_PROPERTY,username);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; requestContext.put(BindingProvider.PASSWORD_PROPERTY,password);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; sampleWebServicePort.callService();&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
2. &amp;nbsp;Second way is add to create the soap security header object which is to be added in the HandlerChain :&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; try {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CustomSOAPHandler sh = new CustomSOAPHandler();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; List&amp;lt;Handler&amp;gt; new_handlerChain = new ArrayList&amp;lt;Handler&amp;gt;();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; new_handlerChain.add(sh);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ((BindingProvider)sampleWebServicePort).getBinding().setHandlerChain(new_handlerChain);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;sampleWebServicePort.callService();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } catch (Throwable e) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; e.printStackTrace();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Create a custom&amp;nbsp;&lt;span style=&quot;font-size: x-small;&quot;&gt;SOAPHandler&lt;/span&gt;&amp;nbsp;class which will add the header in the soap request.&lt;br /&gt;
CustomSOAPHandler:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;public class CustomSOAPHandler implements SOAPHandler&amp;lt;SOAPMessageContext&amp;gt; {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; private static final String AUTH_PREFIX = &quot;wsse&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; private static final String AUTH_NS =&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; public boolean handleMessage(SOAPMessageContext context) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; try {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SOAPEnvelope envelope =&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; context.getMessage().getSOAPPart().getEnvelope();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SOAPFactory soapFactory = SOAPFactory.newInstance();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SOAPElement wsSecHeaderElm =&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; soapFactory.createElement(&quot;Security&quot;, AUTH_PREFIX, AUTH_NS);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Name wsSecHdrMustUnderstandAttr =&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; soapFactory.createName(&quot;mustUnderstand&quot;, &quot;S&quot;,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&quot;http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd&quot;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; wsSecHeaderElm.addAttribute(wsSecHdrMustUnderstandAttr, &quot;1&quot;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SOAPElement userNameTokenElm =&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; soapFactory.createElement(&quot;UsernameToken&quot;, AUTH_PREFIX,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AUTH_NS);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Name userNameTokenIdName =&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; soapFactory.createName(&quot;id&quot;, &quot;wsu&quot;, &quot;http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd&quot;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; userNameTokenElm.addAttribute(userNameTokenIdName,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;UsernameToken-ORbTEPzNsEMDfzrI9sscVA22&quot;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SOAPElement userNameElm =&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; soapFactory.createElement(&quot;Username&quot;, AUTH_PREFIX, AUTH_NS);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; userNameElm.addTextNode(&quot;administrator&quot;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SOAPElement passwdElm =&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; soapFactory.createElement(&quot;Password&quot;, AUTH_PREFIX, AUTH_NS);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Name passwdTypeAttr = soapFactory.createName(&quot;Type&quot;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; passwdElm.addAttribute(passwdTypeAttr,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&quot;http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText&quot;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; passwdElm.addTextNode(&quot;Passw0rd&quot;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; userNameTokenElm.addChildElement(userNameElm);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; userNameTokenElm.addChildElement(passwdElm);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; wsSecHeaderElm.addChildElement(userNameTokenElm);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (envelope.getHeader() == null) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SOAPHeader sh = envelope.addHeader();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sh.addChildElement(wsSecHeaderElm);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SOAPHeader sh = envelope.getHeader();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sh.addChildElement(wsSecHeaderElm);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } catch (Throwable e) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; e.printStackTrace();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return true;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;In this method, we are creating the Security element in the header of the soap request and on the server side it gets asserted successfully.&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;If the credentials are proper, then your service will get executed else it will throw an exception saying that the username token cannot be validated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The second way does not require any extra jars to be present in the classpath whereas in first way you will need to add some weblogic jars in classpath in order to get it working.&lt;br /&gt;
The problem with the second way is if you try to test it with the help of jdeveloper, you will get the following error :&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;Exception in thread &quot;main&quot; javax.xml.ws.soap.SOAPFaultException: Unable to add security token for identity, token uri =http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.0#SAMLAssertionID&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:197)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:122)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:125)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:95)&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;If you analyze the stack trace carefully, you will notice that in this case jdeveloper uses classes from jars (glassfish jars) which are not part of jdk. And that&#39;s why you get the strange exception. If you run the same code from eclipse or through command line with just jdk, it will work.&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
</description><link>http://gskblogs.blogspot.com/2012/10/how-to-invoke-secured-jax-ws-web.html</link><author>noreply@blogger.com (Ganesh Kamble)</author><thr:total>8</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754422473924744459.post-8734091093047143785</guid><pubDate>Thu, 04 Oct 2012 04:26:00 +0000</pubDate><atom:updated>2012-10-04T09:59:36.568+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">jps</category><category domain="http://www.blogger.com/atom/ns#">ldap</category><category domain="http://www.blogger.com/atom/ns#">OID</category><category domain="http://www.blogger.com/atom/ns#">Performance</category><title>OID Performance Tuning</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;
Oracle Internet Directory is highly scalable and manageable in terms of performance tuning as per the hardware resources and high availability configurations.&lt;br /&gt;
In this blog I will explain the parameters which can improve the performance of OID.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;1. Database Parameters:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Recommended values&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;sga_target,sga_max_size &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;upto 60-70% of the available&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RAM for database machine&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;db_cache_size&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;upto 60-70% of the available&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RAM for database machine&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;shared_pool_size&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;500M&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;session_cached_cursors&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;100&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;processes&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;500&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;pga_aggregate_target&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1-4GB&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;job_queue_processes&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 or more&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;max_commit_propagation_delay&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 99 or lower&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;2. LDAP Server Attributes:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Recommended values&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;orclmaxcc&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;10 - Number of DB Connections&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;per Server&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Processes&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;orclserverprocs &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4 - Number of OID LDAP Server&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Processes which&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;should be&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;equal to the number of cpu&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cores on&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;the system&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;orclgeneratechangelog&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 - Disables change log&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;generation&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;orclldapconntimeout&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 60 - LDAP Connection Timeout&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;orclmatchdenabled&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 - Enable MatchDN Processing&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;3. OID Authenticator Parameters:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; If you have configured Oracle Internet&amp;nbsp;Directory&amp;nbsp;Authenticator in myrealm to retrieve users from OID, following parameters can be changed to optimize the performance:&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Recommended values&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Group Membership Searching &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;limited&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Connection Pool Size&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;120&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Connect Timeout&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;120&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Cache Size&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 51200&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Cache TTL&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;300&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;4. jps-config Parameters&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt; If the weblogic server is reassociated to an OID and the application policies are stored in it,&amp;nbsp;following&amp;nbsp;parameters should be added in policystore.ldap serviceInstance in jps-config.xml to make the&amp;nbsp;retrieval&amp;nbsp;of policies faster by caching them.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;property name=&quot;oracle.security.jps.policystore.rolemember.cache.type&quot; value=&quot;STATIC&quot;/&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;property name=&quot;oracle.security.jps.policystore.rolemember.cache.strategy&quot; value=&quot;NONE&quot;/&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;property name=&quot;oracle.security.jps.policystore.rolemember.cache.size&quot; value=&quot;100&quot;/&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;property name=&quot;oracle.security.jps.policystore.policy.lazy.load.enable&quot; value=&quot;true&quot;/&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;property name=&quot;oracle.security.jps.policystore.policy.cache.strategy&quot; value=&quot;NONE&quot;/&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;property name=&quot;oracle.security.jps.policystore.policy.cache.size&quot; value=&quot;1000000&quot;/&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;property name=&quot;oracle.security.jps.policystore.refresh.enable&quot; value=&quot;true&quot;/&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;property name=&quot;oracle.security.jps.policystore.refresh.purge.timeout&quot; value=&quot;43200000&quot;/&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;property name=&quot;oracle.security.jps.ldap.policystore.refresh.interval&quot; value=&quot;6000000&quot;/&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;property name=&quot;oracle.security.jps.policystore.rolemember.cache.warmup.enable&quot; value=&quot;true&quot;/&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;property name=&quot;connection.pool.min.size&quot; value=&quot;120&quot;/&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;property name=&quot;connection.pool.max.size&quot; value=&quot;120&quot;/&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;property name=&quot;connection.pool.provider.type&quot; value=&quot;IDM&quot;/&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;property name=&quot;connection.pool.timeout&quot; value=&quot;300000&quot;/&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;property name=&quot;connection.pool.provider.type&quot; value=&quot;5&quot;/&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;OID and weblogic server restarts are required after modifying the above parameters. They can still&amp;nbsp;be&amp;nbsp;optimized depending on the availability of the hardware resources.&lt;br /&gt;
&amp;nbsp; &amp;nbsp;Ref :&amp;nbsp;&lt;a href=&quot;http://docs.oracle.com/cd/E23943_01/core.1111/e10108/oid.htm&quot;&gt;http://docs.oracle.com/cd/E23943_01/core.1111/e10108/oid.htm&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://gskblogs.blogspot.com/2012/10/oid-performance-tuning.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754422473924744459.post-2189915391756649973</guid><pubDate>Tue, 02 Oct 2012 06:43:00 +0000</pubDate><atom:updated>2012-10-03T19:51:00.234+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">LDIF</category><category domain="http://www.blogger.com/atom/ns#">OID</category><category domain="http://www.blogger.com/atom/ns#">Policystore</category><title>OID Policystore Migration</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Policystore is basically a node in the hierarchical&amp;nbsp;structure&amp;nbsp;of Oracle Internet Directory where all the application&amp;nbsp;policies are stored. There will be cases where you will want to replicate the policystore structure to some other OID&amp;nbsp;instance in development or in production mode. This is useful in cases where you want to maintain the same application policies&amp;nbsp;across multiple environments. Of course you can use the same OID across different environments but it will be very&amp;nbsp;difficult&amp;nbsp;for troubleshooting&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OID provides few set of commands using which a policystore can be exported to an LDIF file and then that LDIF&amp;nbsp;file can be imported on another OID.&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;This&amp;nbsp;blog explains the use of ldifwrite and bulkload commands which are used to export the policystore or to be&amp;nbsp;specific&amp;nbsp;any node to an LDIF file and import the LDIF file respectively.&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Following environment variables must be set before proceeding:&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;WLS_HOME=&amp;lt;path_where_middleware_is_installed&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;ORACLE_HOME=$WLS_HOME/Oracle_IDM1&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;ORACLE_INSTANCE=$ORACLE_HOME/asinst_1&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Following directories must be added to the PATH variable:&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;ORACLE_HOME/bin&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;ORACLE_HOME/ldap/bin&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;ORACLE_INSTANCE/bin&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; OID instance must be shut down before performing bulkload commands to avoid any inconsistencies in the loading.&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; opmnctl stopall&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Follow the below steps to replicate a node in one OID to another :&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Use ldifwrite to export a node to an ldif file :&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt; ldifwrite connect=&quot;connect_string&quot; basedn=&quot;source_dn&quot; file=&quot;location.ldif&quot;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;e.g. If you want to export &#39;cn=mynode,cn=jpsContext,cn=jpsroot&#39; (basedn) &amp;nbsp;which resides in ODS schema of OIDDB_SOURCE&amp;nbsp;(connect_string as specified in ORACLE_INSTANCE/config/tnsnames.ora) to a file source.ldif which is at location&amp;nbsp;(/u01/export/source.ldif), use the following command :&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;ldifwrite connect=&quot;OIDDB_SOURCE&quot; basedn=&quot;cn=mynode,cn=jpsContext,cn=jpsroot&quot; file=&quot;/u01/export/source.ldif&quot;&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Use bulkload to import the ldif file and generate the intermediate SQL*Loader files :&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;bulkload connect=&quot;connect_string&quot; check=&quot;true&quot; generate=&quot;true&quot; recover=&quot;true&quot; file=&quot;location.ldif&quot;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;e.g. Intermediate SQL*Loader files which are to be executed for ODS schema in OIDDB_TARGET (connect_string) can be generated&amp;nbsp;from /u01/export/source.ldif (file) with the following command :&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;bulkload connect=&quot;OIDDB_TARGET&quot; check=&quot;true&quot; generate&quot;true&quot; recover=&quot;true&quot; file=&quot;/u01/export/source.ldif&quot;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;check &lt;/span&gt;flag parses and verifies the input LDIF file to find any corrupt data&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;generate &lt;/span&gt;flag generates the intermediate files in SQL*Loader format&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;restore &lt;/span&gt;flag restores the schema in case any problem arises during bulkload operation&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Use bulkload to load the intermediate SQL*Loader files in the target OID schema :&lt;/li&gt;
&lt;/ul&gt;
&amp;nbsp; &amp;nbsp;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; bulkload connect=&quot;connect_string&quot; load=&quot;true&quot;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; e.g. Intermediate files generated by 2 option can be loaded in the schema OIDDB_TARGET by the following command :&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp;bulkload connect=&quot;OIDDB_TARGET&quot; load=&quot;true&quot;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;After the completion of bulkload execution, start the OID server instance:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;opmnctl startall&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; The logs file generated by the bulkload tool are at location :&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ORACLE_INSTANCE/diagnostics/logs/OID/tools&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;bulkload.log : output log&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;duplicateDN.log : list of duplicate DNs found during loading&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;*.ctl and *.dat : intermediate files&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ORACLE_INSTANCE/OID/load&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;badentry.ldif : list of bad LDIF entries&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;dynGrp.ldif : list of dynamic group entries that can be added using ldapadd command&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;bsl_*.log : intermediate log files generated by SQL*Loader&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; If there are any errors during indexing phase of loading, following command can re-create the indices :&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;bulkload connect=&quot;OIDDB_TARGET&quot; index=&quot;true&quot;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; Indices can be verified by using the command :&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;bulkload connect=&quot;OIDDB_TARGET&quot; check=&quot;true&quot; index=&quot;true&quot;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;In this way you can migrate the application policystore or any node for that matter from one OID instance to another. The detailed explanation of all the attributes used in the above commands can be found at the location&amp;nbsp;&lt;a href=&quot;http://docs.oracle.com/cd/E25054_01/oid.1111/e10029/bulktools.htm&quot;&gt;http://docs.oracle.com/cd/E25054_01/oid.1111/e10029/bulktools.htm&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://gskblogs.blogspot.com/2012/10/oid-policystore-migration.html</link><author>noreply@blogger.com (Ganesh Kamble)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2754422473924744459.post-4319784476026039204</guid><pubDate>Sat, 22 Sep 2012 04:35:00 +0000</pubDate><atom:updated>2012-10-06T10:27:48.566+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">highcpu</category><category domain="http://www.blogger.com/atom/ns#">thread</category><category domain="http://www.blogger.com/atom/ns#">threaddump</category><category domain="http://www.blogger.com/atom/ns#">weblogic</category><title>Thread analysis in weblogic on linux</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;
This blog will take you through a few Linux commands to get the process id and thread id of any executing thread in a process and&amp;nbsp;find the piece of code which is responsible of high usage of cpu.&lt;br /&gt;
&lt;br /&gt;
This will be useful in cases where you have long running transactions and want to know which part of the code is consuming more amount of cpu.&lt;br /&gt;
Follow the below steps :&lt;br /&gt;
&lt;br /&gt;
1.&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;Get the pid of the java process of weblogic server running on a Linux machine :&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;ps -ef | grep java&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;Copy id of the java process&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
2.&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;Get the list of all the threads belonging to the above process :&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;top -H -p &amp;lt;pid&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;top commands sorts the output in descending order of cpu utilization. The first thread utilizes the higher amount of cpu.&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;Copy id of the first thread&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
3.&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;Login to weblogic server administration console :&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;Go to Home &amp;gt; Summary of Servers &amp;gt; (serverName) &amp;gt; Monitoring &amp;gt; Threads &amp;gt; Dump Thread Stacks.&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;br /&gt;
4.&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;Search the copied tid in the thread dump.&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;Following stack shows thread with tid 32606 is blocked with a fat lock. This stack is generated by the weblogic socket thread and is for the explanatory purpose only :&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: xx-small;&quot;&gt;&quot;ExecuteThread: &#39;0&#39; for queue: &#39;weblogic.socket.Muxer&#39;&quot; id=24 idx=0x60 tid=32606 prio=5 alive, blocked, native_blocked, daemon&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -- Blocked trying to get lock: java/lang/String@0x86667f30[fat lock]&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at jrockit/vm/Threads.waitForUnblockSignal()V(Native Method)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at jrockit/vm/Locks.fatLockBlockOrSpin(Locks.java:1411)[optimized]&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at jrockit/vm/Locks.lockFat(Locks.java:1512)[optimized]&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at jrockit/vm/Locks.monitorEnterSecondStageHard(Locks.java:1054)[optimized]&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at jrockit/vm/Locks.monitorEnterSecondStage(Locks.java:1005)[optimized]&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at jrockit/vm/Locks.monitorEnter(Locks.java:2179)[optimized]&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at weblogic/socket/EPollSocketMuxer.processSockets(EPollSocketMuxer.java:153)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at weblogic/socket/SocketReaderRequest.run(SocketReaderRequest.java:29)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at weblogic/socket/SocketReaderRequest.execute(SocketReaderRequest.java:42)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at weblogic/kernel/ExecuteThread.execute(ExecuteThread.java:145)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at weblogic/kernel/ExecuteThread.run(ExecuteThread.java:117)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -- end of trace&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
5.&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;The stack corresponding to the tid is the piece of code where the cpu utilization is maximum.&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;This way you can find out the piece of code which is responsible for high cpu usage and replace it with an improved version. &lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</description><link>http://gskblogs.blogspot.com/2012/09/thread-analysis-in-weblogic-on-linux.html</link><author>noreply@blogger.com (Ganesh Kamble)</author><thr:total>4</thr:total></item></channel></rss>