{"id":2366,"date":"2011-03-16T10:37:35","date_gmt":"2011-03-16T14:37:35","guid":{"rendered":"http:\/\/onlineappsdba.com\/index.php\/2011\/03\/16\/bug-report-error-password-reverse-synchronization-from-oam-to-oim\/"},"modified":"2011-03-17T05:10:03","modified_gmt":"2011-03-17T09:10:03","slug":"bug-report-error-password-reverse-synchronization-from-oam-to-oim","status":"publish","type":"post","link":"https:\/\/onlineappsdba.com\/index.php\/2011\/03\/16\/bug-report-error-password-reverse-synchronization-from-oam-to-oim\/","title":{"rendered":"Bug Report Error: Password Reverse Synchronization from OAM to OIM"},"content":{"rendered":"<p><font color=\"#5f5f5f\">I have got a great experience while resolved this issue. I got an opportunity to work on password reverse synchronization. This post will cover the workaround plan to resolve this issue.<\/font><font color=\"#5f5f5f\">\u00a0<\/font><\/p>\n<p><strong><font color=\"#5f5f5f\">Environment details:<\/font><\/strong><strong><font color=\"#5f5f5f\">\u00a0<\/font><\/strong><font color=\"#5f5f5f\">The architecture has OAS 10.1.4.3, OAM 10.1.4.3, and OIM 9.1.0.2 and installed in production server node. The OID version is 10.1.4.3. OID is used as user store for OAM. OIM DB is used to store for user provisioning details. OIM will provisioning the details to integrated target system. So if we modify any details in OIM it will reflect to all respected tracks. As per our project requirement we have tried to implement the forgot password. So if we modify a password it will reflect in OID not in OIM. By default oracle product have no option for this. So I have created own java pulgin to update the password in OIM. In this case I have not able to update the password in OIM and I have facing lot of issue. Here, I will mention some of the issue and workaround for that.<\/font><font color=\"#5f5f5f\">\u00a0<\/font><font color=\"#5f5f5f\">We have option to trigger the java plugin from OAM and pass the event xml values into java pulgin. In that java code I have fetch the xml values from command line argument. <\/font><\/p>\n<p><font color=\"#5f5f5f\">Event value should like that<\/font><\/p>\n<p><font color=\"#ff0000\">&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&gt;<\/font><\/p>\n<p><font color=\"#ff0000\">&lt;ObEventParams xmlns=&#8221;http:\/\/www.oblix.com\/&#8221;&gt;\u00a0<\/font><\/p>\n<p><font color=\"#ff0000\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;ObParam name=&#8221;ObRequest.TARGET_UID&#8221;&gt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;ObValue&gt;cn=pwdtestuser,cn=Users,DC=carrera,DC=com&lt;\/ObValue&gt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/font><\/p>\n<p><font color=\"#ff0000\">\u00a0 &lt;\/ObParam&gt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/font><\/p>\n<p><font color=\"#ff0000\">\u00a0&lt;ObParam name=&#8221;ObRequest.Password&#8221;&gt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/font><\/p>\n<p><font color=\"#ff0000\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;ObValue&gt;admin1234&lt;\/ObValue&gt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/ObParam&gt;\u00a0\u00a0\u00a0\u00a0<\/font><\/p>\n<p><font color=\"#ff0000\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/ObEventParams<\/font>&gt;<\/p>\n<p><strong><font color=\"#5f5f5f\">Functionality of the java code:<\/font><\/strong><\/p>\n<p><font color=\"#5f5f5f\">1.\u00a0\u00a0\u00a0 Extract the userid and password from the xml.<\/font><\/p>\n<p><font color=\"#5f5f5f\">2.\u00a0\u00a0\u00a0 Create an OIM connection through tcUtilityFactory.<\/font><\/p>\n<p><font color=\"#5f5f5f\">3.\u00a0\u00a0\u00a0 Update the password in OIM.<\/font><font color=\"#5f5f5f\" face=\"Verdana\">\u00a0<\/font><\/p>\n<p><font face=\"Verdana\"><font color=\"#5f5f5f\">Java plugin configured in <strong>oblixpppcatalog.lst<\/strong> under<\/font><font size=\"2\"><font color=\"#5f5f5f\"> <\/font><font color=\"#333399\">&lt;Identity_Server_Install_Dir&gt;\\identity\\oblix\\apps\\common\\bin<\/font>\\<\/font><font color=\"#5f5f5f\"> folder the file will capture the username\/password (after the password is changed in OAM system) and calls the OIM API to change the user password in OIM user profile.<\/font><\/font><font color=\"#5f5f5f\" face=\"Verdana\">\u00a0<\/font><\/p>\n<p><strong><font color=\"#5f5f5f\"><font face=\"Verdana\">Configured line is <\/font><\/font><\/strong><font color=\"#333399\"><font face=\"Verdana\">PWMGMT_PasswordValidation;exec;ObRequest.TARGET_UID,ObRequest.Password,;<font size=\"2\"> \/u01\/apps\/oraclesoa\/jdk\/bin\/java;Resetpwd;<\/font><\/font><strong>\u00a0<\/strong><\/font><\/p>\n<p><font color=\"#5f5f5f\">Copied the Resetpwd class file into <\/font><font color=\"#000080\">&lt;Identity_Server_Install_dir&gt;\\identity\\oblix\\apps\\common\\bin\\<\/font><font color=\"#5f5f5f\"> folder and give the permission to class file as 777. Set the classpath in .bash_profile.<\/font><font color=\"#5f5f5f\">In our case if I tried to change a password in OAM it trigger the java pulgin and its update the password in OIM but not in OAM and I am getting bug error in OAM side.<\/font><font color=\"#5f5f5f\">After some workaround finally I come to know the root cause of the problem.<\/font><font color=\"#5f5f5f\">\u00a0<\/font><\/p>\n<p><font color=\"#5f5f5f\">The <strong>problem<\/strong> is <\/font>unformatted returned value from OIM<font color=\"#5f5f5f\">. <\/font><font color=\"#5f5f5f\">\u00a0<\/font><\/p>\n<p><strong><font color=\"#5f5f5f\">Error in logs file<\/font><\/strong><\/p>\n<p><font color=\"#ff0000\"><font face=\"Verdana\">&#8220;Function returned&#8221; _CallName^ObLaunchExecuteable _CallDuration^14.659752 DataIn^%0a&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-%0aGMS: address is hostname:30305%0a&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-%0ahashtable%0astoring userid%0aputting into hashtable%0aSuccess%0apwd updated%0a retVal^0 &#8220;<\/font>\u00a0<\/font><\/p>\n<p><font color=\"#993300\">This is not a valid structure.\u00a0<\/font><\/p>\n<p><font color=\"#5f5f5f\"><strong>Solution<\/strong> is Capture the Event XML stream at the beginning of the action by reading System.in, and re-write System.out to contain (only) the same data on termination.<\/font><font color=\"#5f5f5f\">\u00a0<\/font><font color=\"#5f5f5f\">This action plan went into unsuccessful. Again finger as crossed. <\/font><font color=\"#5f5f5f\">\u00a0<\/font><font color=\"#5f5f5f\">Later I have found some alternative way to resolve this issue with the help of webservice. <\/font><font color=\"#5f5f5f\">\u00a0<\/font><\/p>\n<p><strong>The action plan is as follows,<\/strong><\/p>\n<p><font color=\"#5f5f5f\">1.\u00a0\u00a0\u00a0 Create one webservice, the functionality of the webservice is creating OIM connection, receive userid\/password from client program and update the password in OIM.<\/font><\/p>\n<p><font color=\"#5f5f5f\">2.\u00a0\u00a0\u00a0 Deploy the webservice into server and generate the WSDL.<\/font><\/p>\n<p><font color=\"#5f5f5f\">3.\u00a0\u00a0\u00a0 Create a client program using WSDL.<\/font><\/p>\n<p><font color=\"#5f5f5f\">4.\u00a0\u00a0\u00a0 Add the java program to fetch the xml value from PWMGMT_PasswordValidation event.<\/font><\/p>\n<p><font color=\"#5f5f5f\">5<\/font><font color=\"#5f5f5f\">.\u00a0\u00a0\u00a0 Functionality of the java code is capture the Event XML stream at the beginning of the action by reading System.in, and re-write System.out to contain (only) the same data on termination.<\/font><\/p>\n<p><font color=\"#5f5f5f\">6.\u00a0\u00a0\u00a0 Extract the user\/password values and call the webservice method with user\/password as a argument.<\/font><\/p>\n<p><font color=\"#5f5f5f\">7.\u00a0\u00a0\u00a0 Make it as jar file and mentioned the main class in manifest.mf file.<\/font><\/p>\n<p><font color=\"#5f5f5f\">8.\u00a0\u00a0\u00a0 Deployed the jar into the server under &lt;Identity_Server_Install_Dir&gt;\\identity\\oblix\\apps\\common\\bin\\ folder<\/font><\/p>\n<p><font color=\"#5f5f5f\">9.\u00a0\u00a0\u00a0 Later add the entry in oblixpppcatalog.lst file as like below.<\/font><\/p>\n<p><font color=\"#5f5f5f\" face=\"Verdana\">\u00a0<\/font><font color=\"#993300\"><font face=\"Verdana\">PWMGMT_PasswordValidation;exec;ObRequest.TARGET_UID,ObRequest.Password,;\/u01\/apps\/oraclesoa\/jdk\/bin\/java; -jar,pwdupdate.jar;<\/font><font face=\"Verdana\">\u00a0<\/font><\/font><\/p>\n<p><font color=\"#5f5f5f\"><font face=\"Verdana\">10. <\/font><font face=\"Verdana\">Reset the identity server. <\/font><\/font><\/p>\n<p><font color=\"#5f5f5f\" face=\"Verdana\">\u00a0<\/font><font color=\"#5f5f5f\"><font face=\"Verdana\">Now I can able to update the password in OIM and OAM without any issue. <\/font><\/font><font color=\"#5f5f5f\" face=\"Verdana\">\u00a0<\/font><\/p>\n<p><font color=\"#5f5f5f\"><font face=\"Verdana\">Later I have seen the return value of CallName^ObLaunchExecuteable in log file. <\/font><\/font><\/p>\n<p><font color=\"#5f5f5f\"><font face=\"Verdana\">The returned value is<\/font><\/font><\/p>\n<p><font color=\"#339966\"><font face=\"Verdana\">2011\/03\/16@09:53:08.256339\u00a0\u00a0\u00a0\u00a0\u00a0 29155\u00a0\u00a0 29155\u00a0\u00a0 PPP\u00a0\u00a0\u00a0\u00a0 TRACE\u00a0\u00a0 0x00000206\u00a0\u00a0\u00a0\u00a0\u00a0 obeventaction.cpp:490\u00a0\u00a0 &#8220;Function returned&#8221;\u00a0\u00a0\u00a0\u00a0 _CallName^ObLaunchExecuteable\u00a0\u00a0 _CallDuration^3.600568\u00a0 DataIn^ retVal^0<\/font><font face=\"Verdana\">2011\/03\/16@09:53:08.256422\u00a0\u00a0\u00a0\u00a0\u00a0 29155\u00a0\u00a0 29155\u00a0\u00a0 PPP\u00a0\u00a0\u00a0\u00a0 DEBUG3\u00a0 0x00000201\u00a0\u00a0\u00a0<\/font><\/font><font face=\"Verdana\"><font color=\"#339966\">obeventaction.cpp:183\u00a0\u00a0 &#8220;In function ObEventAction::UpdatePPPSnmpCounters&#8221;\u00a0\u00a0\u00a0\u00a0\u00a0 retVal^0<\/font>\u00a0\u00a0 <\/font><\/p>\n<p><font face=\"Verdana\">I hope this action plan will helps people who have facing this issue.<\/font><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I have got a great experience while resolved this issue. I got an opportunity to work on password reverse synchronization. [&hellip;]<\/p>\n","protected":false},"author":115,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[185,32,42],"tags":[],"class_list":["post-2366","post","type-post","status-publish","format-standard","hentry","category-oim","category-others","category-troubleshooting"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Bug Report Error: Password Reverse Synchronization from OAM to OIM -<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/onlineappsdba.com\/index.php\/2011\/03\/16\/bug-report-error-password-reverse-synchronization-from-oam-to-oim\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bug Report Error: Password Reverse Synchronization from OAM to OIM -\" \/>\n<meta property=\"og:description\" content=\"I have got a great experience while resolved this issue. I got an opportunity to work on password reverse synchronization. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/onlineappsdba.com\/index.php\/2011\/03\/16\/bug-report-error-password-reverse-synchronization-from-oam-to-oim\/\" \/>\n<meta property=\"article:published_time\" content=\"2011-03-16T14:37:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2011-03-17T09:10:03+00:00\" \/>\n<meta name=\"author\" content=\"Masroof Ahmad\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Masroof Ahmad\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/onlineappsdba.com\/index.php\/2011\/03\/16\/bug-report-error-password-reverse-synchronization-from-oam-to-oim\/\",\"url\":\"https:\/\/onlineappsdba.com\/index.php\/2011\/03\/16\/bug-report-error-password-reverse-synchronization-from-oam-to-oim\/\",\"name\":\"Bug Report Error: Password Reverse Synchronization from OAM to OIM -\",\"isPartOf\":{\"@id\":\"https:\/\/onlineappsdba.com\/#website\"},\"datePublished\":\"2011-03-16T14:37:35+00:00\",\"dateModified\":\"2011-03-17T09:10:03+00:00\",\"author\":{\"@id\":\"https:\/\/onlineappsdba.com\/#\/schema\/person\/909a876ed58d400faf82caf81d61bfdb\"},\"breadcrumb\":{\"@id\":\"https:\/\/onlineappsdba.com\/index.php\/2011\/03\/16\/bug-report-error-password-reverse-synchronization-from-oam-to-oim\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/onlineappsdba.com\/index.php\/2011\/03\/16\/bug-report-error-password-reverse-synchronization-from-oam-to-oim\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/onlineappsdba.com\/index.php\/2011\/03\/16\/bug-report-error-password-reverse-synchronization-from-oam-to-oim\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/onlineappsdba.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bug Report Error: Password Reverse Synchronization from OAM to OIM\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/onlineappsdba.com\/#website\",\"url\":\"https:\/\/onlineappsdba.com\/\",\"name\":\"\",\"description\":\"Oracle Implementation &amp; Training Experts\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/onlineappsdba.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/onlineappsdba.com\/#\/schema\/person\/909a876ed58d400faf82caf81d61bfdb\",\"name\":\"Masroof Ahmad\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/onlineappsdba.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/10f9db7bdbbd7f9ccfbe9b2d208e5978fc28315e9c704383e639a926ea0fce5f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/10f9db7bdbbd7f9ccfbe9b2d208e5978fc28315e9c704383e639a926ea0fce5f?s=96&d=mm&r=g\",\"caption\":\"Masroof Ahmad\"},\"url\":\"https:\/\/onlineappsdba.com\/index.php\/author\/masroof\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Bug Report Error: Password Reverse Synchronization from OAM to OIM -","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/onlineappsdba.com\/index.php\/2011\/03\/16\/bug-report-error-password-reverse-synchronization-from-oam-to-oim\/","og_locale":"en_US","og_type":"article","og_title":"Bug Report Error: Password Reverse Synchronization from OAM to OIM -","og_description":"I have got a great experience while resolved this issue. I got an opportunity to work on password reverse synchronization. [&hellip;]","og_url":"https:\/\/onlineappsdba.com\/index.php\/2011\/03\/16\/bug-report-error-password-reverse-synchronization-from-oam-to-oim\/","article_published_time":"2011-03-16T14:37:35+00:00","article_modified_time":"2011-03-17T09:10:03+00:00","author":"Masroof Ahmad","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Masroof Ahmad","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/onlineappsdba.com\/index.php\/2011\/03\/16\/bug-report-error-password-reverse-synchronization-from-oam-to-oim\/","url":"https:\/\/onlineappsdba.com\/index.php\/2011\/03\/16\/bug-report-error-password-reverse-synchronization-from-oam-to-oim\/","name":"Bug Report Error: Password Reverse Synchronization from OAM to OIM -","isPartOf":{"@id":"https:\/\/onlineappsdba.com\/#website"},"datePublished":"2011-03-16T14:37:35+00:00","dateModified":"2011-03-17T09:10:03+00:00","author":{"@id":"https:\/\/onlineappsdba.com\/#\/schema\/person\/909a876ed58d400faf82caf81d61bfdb"},"breadcrumb":{"@id":"https:\/\/onlineappsdba.com\/index.php\/2011\/03\/16\/bug-report-error-password-reverse-synchronization-from-oam-to-oim\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/onlineappsdba.com\/index.php\/2011\/03\/16\/bug-report-error-password-reverse-synchronization-from-oam-to-oim\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/onlineappsdba.com\/index.php\/2011\/03\/16\/bug-report-error-password-reverse-synchronization-from-oam-to-oim\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/onlineappsdba.com\/"},{"@type":"ListItem","position":2,"name":"Bug Report Error: Password Reverse Synchronization from OAM to OIM"}]},{"@type":"WebSite","@id":"https:\/\/onlineappsdba.com\/#website","url":"https:\/\/onlineappsdba.com\/","name":"","description":"Oracle Implementation &amp; Training Experts","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/onlineappsdba.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/onlineappsdba.com\/#\/schema\/person\/909a876ed58d400faf82caf81d61bfdb","name":"Masroof Ahmad","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/onlineappsdba.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/10f9db7bdbbd7f9ccfbe9b2d208e5978fc28315e9c704383e639a926ea0fce5f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/10f9db7bdbbd7f9ccfbe9b2d208e5978fc28315e9c704383e639a926ea0fce5f?s=96&d=mm&r=g","caption":"Masroof Ahmad"},"url":"https:\/\/onlineappsdba.com\/index.php\/author\/masroof\/"}]}},"_links":{"self":[{"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/posts\/2366","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/users\/115"}],"replies":[{"embeddable":true,"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/comments?post=2366"}],"version-history":[{"count":0,"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/posts\/2366\/revisions"}],"wp:attachment":[{"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/media?parent=2366"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/categories?post=2366"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/tags?post=2366"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}