issues arise for:
1. keeping credentials session open with Oracle CRM On Demand because OCOD accept only 10 concurrent session + it is faster to re-use existing session
2. OCOD refuse 2 request to be made without 50ms between each requests
3. session need to be reset if OCOD server restart
An option is to add the session id to the end point of the partner link in the BPEL process.
Another option is to use java embedded code in BPEL and login and loggof to OCOD.
Those 2 options did not really fit with our requirements. Too slow, not scalable, dodgy to maintain, etc...
Our approach has been to use a proxy between our BPEL engine and OCOD.
An option is to add the session id to the end point of the partner link in the BPEL process.
Another option is to use java embedded code in BPEL and login and loggof to OCOD.
Those 2 options did not really fit with our requirements. Too slow, not scalable, dodgy to maintain, etc...
Our approach has been to use a proxy between our BPEL engine and OCOD.
So all partner link to OCOD from our BPEL process use this proxy as the end point for the partner link. Thus all calls from our application to OCOD is going through this proxy.
It consist of a Java web application deployed as a war file (11Kb) it manages:
- sessions
- authentication (so no password in clear text inside our BPEL process)
- the 50 ms wait that must exist between each request to OCOD
- sessions
- authentication (so no password in clear text inside our BPEL process)
- the 50 ms wait that must exist between each request to OCOD
The code for this proxy is located here:
you can check it out like that:
The idea is to make it public so that anybody can use it and tell if he meets any issues.
Then tell me if you want to modify and enhance it. I would provide an access to the SVN repository.
Then tell me if you want to modify and enhance it. I would provide an access to the SVN repository.
Hi, thanks for your great input, but can you please answer a question to a problem i'am facing using your solution.
ReplyDeleteI'm using your solution within a java component and it works fine if the request is handling 1 or to records (query, update etc.) but if the request consists of let's say a query with max request size 100 records it throws an error:
java.io.IOException: Chunked input stream failed to receive valid chunk size:<?xmlversion="1.0"
This is happening on recieving Integrationevents and query, update operations with more than a few records
Have you any idea why this happens. For now I use my old session handling and have to deal with the annoying SBL-ODU-01006 failure, but request size is no problem there.
Thanks in advance
SL
Excellent idea and implementation
ReplyDeleteHello Stefan,
ReplyDeleteSorry for my very late answer. I do not check my blog regularly.
I have an issue that looks similar as yours. When I query Siebel on demand, and it reply with transfer-encoding chunck, OC4J fails to reply.
It works fine with Tomcat though.
I opened an SR with ORACLE. This is not critical for us at the moment, so I let Oracle support deal with it. I will see later.
Did you progress on your side ?
Hello Bruce,
ReplyDeleteI saw your message concerning the deployment of the application.
This is what my web.xml looks like:
<servlet-name>OcodProxy</servlet-name>
<servlet-class>com.soa.ocod.OcodProxy</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>OcodProxy</servlet-name>
<url-pattern>/proxy/*</url-pattern>
</servlet-mapping>
I will update the code with the latest version later this week. Tell me if you make modifications, I will create account for you.
You should use Eclipse to build and debug your web application.
siebel blog: http://siebeltipsntricks.blogspot.com
ReplyDeleteHi Fred, can you provide the steps to integrate with Oracle CRMOD (stepwise) and access Default Queue or any queue? this can help a lot. waiting for your response urgently.....
ReplyDeleteI'm preparing a poc to integrate with Oracle CRMOD using BPEL and connecting to Default Queue.
ReplyDeleteNice article i was really impressed by seeing this article, it was very intresting and it is very useful for SIEBEL CRM Training Learners.. We are Providing best qa online training in worldwide.
ReplyDelete