Wednesday, March 24, 2010

Missing Configuration for Integration between OIM and ORM with JBOSS

I was facing an error after doing the integration between Oracle Identity Manager and Oracle Role Manager where OIM installed on Linux server and ORM in Windows server, here is a snapshot from the log

03:39:40,216 WARN  [IntegrationUtilities] No plugin configuration files found in /oracle/idm-home/jboss-4.2.3/bin/c:\ORMINT_HOME\/config
03:39:40,217 ERROR [TASK] Class/Method: SchedulerBaseTask/run encounter some problems: {1}
java.lang.NullPointerException
    at oracle.iam.rm.imframework.scheduledTasks.ScheduledIntegrationTask.init(ScheduledIntegrationTask.java:135)
    at com.thortech.xl.scheduler.tasks.SchedulerBaseTask.run(Unknown Source)
    at com.thortech.xl.scheduler.core.quartz.QuartzWrapper$TaskExecutionAction.run(Unknown Source)
    at Thor.API.Security.LoginHandler.jbossLoginSession.runAs(Unknown Source)
    at com.thortech.xl.scheduler.core.quartz.QuartzWrapper.execute(Unknown Source)
    at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)

I faced this error before when I installed OIM on windows, but for a quick way to solve the problem I moved ORMINT_HOME (ORM Integration Library location on OIM server) to the default location C:\ORMINT_HOME but after we changed OIM server to be Linux server, I had to face that issue again.

I tried to find if someone faced that issue before or not I didn't find help, even I opened Service Request on Metalink but without any help. That's because ORM is a new product and there are only few implementations for it (by the way I am not a fan for that system).

The solution for this error is very simple but not mentioned in documentation, there is a system property that needs to be added to JBoss and it will be used by OIM for integration purposes with ORM. That property is ORMINT_ROOT_DIR and it will be added with a value to properties-service.xml file (you can find it under /server/default/deploy )

<attribute name="Properties">
      ORMINT_ROOT_DIR=/oracle/idm-home/ORMINT_HOME
<\attribute>

Tuesday, March 16, 2010

AD integration in OpenText Hummingbird vs Oracle UCM

I am working in Oracle IDM project currently, and I have to provision users to Hummingbird and Hummingbird in this case integrated with Active Directory. So I were in my mind making a comparison between Oracle UCM and OpentText Hummingbird and I want to share it here.

In Oracle UCM, it is a full integration why because user roles and accounts will be represented in AD as security groups, so I want to give an AD user the contributor role, just assign to him contributor security group form inside AD. Also you can make a custom user attributes from inside UCM to AD user attributes like user manager or any other attribute.

In OpenText Hummingbird especially with Document Management module and Records Management modules, the admin have to import users from AD manually and assign security groups and permissions from inside the system, which means it is not full integration, Hummingbird is just using AD as a repository of users info not a repository for security.

Another thing Oracle UCM is like an open source application it is open, you can change any functionality you want, its database schema is not sealed and the schema is very easy to be used and modified. But Hummingbird's database is not allowing that, if you tried to add new records or delete records, the system will throw exceptions and errors.

In my opinion, Oracle UCM is one of the best applications you can integrate with. So If I am a decision maker I will always choose UCM because of integrations easiness.

Monday, March 15, 2010

JMS error sending message to queue/orm/IncomingEventQueue

I was getting the following error when I try to create an Oracle Identity Manager user after integrating with Oracle Role Manager (both OIM and ORM are using JBoss as the application server). I took from me a lot of time to discover the cause of that error
 
ERROR [oracle.iam.rm.imframework.oimjavatasks.ReconcileEntityAdapter] General exception: JMS error sending message to queue/orm/IncomingEventQueue
java.lang.Exception: JMS error sending message to queue/orm/IncomingEventQueue
    at oracle.iam.rm.imframework.util.JMSUtil.sendMessage(JMSUtil.java:96)
    .......
Caused by: org.jboss.mq.SpyJMSException: Cannot authenticate user; - nested throwable: (java.net.NoRouteToHostException: No route to host: connect)
    at org.jboss.mq.SpyJMSException.getAsJMSException(SpyJMSException.java:72)
    .......
Caused by: java.net.NoRouteToHostException: No route to host: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)

    .......

The cause of the error is that in the test server where I installed Oracle Role Manager I have more than one IP address for the server and I was binding JBoss to all IP(s) by running it using the following command
run.bat -b 0.0.0.0
The solution is to bind JBoss to only one IP as the following
run.bat -b 192.168.220.1

Sunday, February 7, 2010

Sun Identity Manager and Oracle Identity Manager

As all of us know, Oracle bought Sun and the deal has been closed completely. I am currently working with Oracle Identity Management (as well as Oracle UCM) and I am interested to know Oracle's plan for IDM after merging. I found a blog post that talks in brief about that I recommend you to read it, click here.



The conclusion Oracle will keep its IDM solutions as a strategic solutions and it will re-brand Sun IDM solutions.

Wednesday, January 20, 2010

Java Decompiling

When I face frustrating bugs that comes because of the misleading exceptions, I go to the magic method which is decompiling the class that cause the error, and take a quick look there. But note I don't prefer going deeper to understand the class and the library I am decompiling.

I am using JD-GUI and I'd like to thank the people who created it and made it available for free.


Rebranding OIM Administration Console [JBoss]

The following brief steps explain rebranding of Oracle Identity Manager on JBoss application server:

- Get copy from XellerateFull.ear from [jboss_install_dir]/server/default/deploy

- Extract the file normally like a zip file (change extension from .ear to .zip)

- Inside the extracted directory, you will find a war file called xlWebApp.war

- Extract that file like a zip file (change extension from .war to .zip)

-  If you want to change the application colors and styles, go to XellerateFull/xlWebApp/css/Xellerate.css

- If you want to change labels and messages, go to XellerateFull/xlWebApp/WEB-INF/classes/xlWebAdmin.properties (change the other localized files that you are using)

- If you want to change logo and application images, go to XellerateFull/xlWebApp/WEB-INF/classes/xlDefaultAdmin.properties

- After finishing recompress everything (compress it a .zip then change the extension), but after finishing open the archive you made and see if the structure of the archives (XellerateFull.ear and xlWebApp.war) is correct like the old one

- At last replace XellerateFull.ear under JBoss with the new one you made.

Anyway, this application is built using Struts, and it can be customized as you want, nut I don't recommend that from a previous experience with other applications.

Note in documentation there is another for doing that, but it didn't work with me.

Saturday, January 16, 2010

Oracle Identity Manager installation tips

I will not be able to post right now the complete installation steps for Oracle Identity Manager with JBoss as the application server, because it will take a lot of time, but I will add some tips here to be be taken in consideration during OIM installation.

- If you are using Sun JVM and JBoss, you need to make one more modification in run.bat (JBoss starting Batch) ro JAVA_OPTS parameter which is -XX:MaxPermSize=256m

set JAVA_OPTS=%JAVA_OPTS% -Xms256m -Xmx1024m -XX:MaxPermSize=256m

- When you start JBoss and you want it to listen (or bind) to any available IP, run JBoss starting batch like this

run.bat -b 0.0.0.0


- After installing OIM Design Console, take copy from log4j.jar from inside JBoss and rename it to log4j-1.2.8.jar then replace log4j-1.2.8.jar from inside OIM Design Console installation directory.

- Take care when installing JBoss in your development or testing machine, some applications my be using JBoss ports like MS Exchange uses 1099 and 1098, Oracle UCM uses 4444 and 4445, and of course Apache Tomcat. So you need to change JBoss ports, to do that take a look at the following page which explains to you which files you will change

http://www.thedance.net/~roth/TECHBLOG/jbossports.html

If you want to know which applications is using your machine's ports, download ActivePorts program from the following link

http://download.cnet.com/Active-Ports/3000-2651_4-29653.html?tag=mncol

If you changed 1099 port after you have installed OIM, you should change it too in xlconfig.xml for OIM Server and OIM Design Console. Also If you changed 8080 port after you have installed OIM, you should change it too in xlconfig.xml for Design Console.

- To deploy SMPL WebService, take a look at the following link

http://download.oracle.com/docs/cd/E14899_01/doc.9102/e14763/spml.htm#BEIDGDGE

Also note you need in this case to download apache commons-discovery library and add it to [jboss_install_dir]/server/default/lib