8 Replies Latest reply: Jan 31, 2014 7:37 PM by Sameer Darbha RSS

    BPM API over T3 Protocol using Virtual IP

    Sameer Darbha

      Hi

       

      JDeveloper/SOA/BPM 11.1.1.7

      Weblogic 10.3.6

       

      I have a custom dashboard written in ADF using BPM API.

      The Tasks list are queried using the T3 protocol as mentioned in Building a Custom Worklist Client - 11g Release 1 (11.1.1.6.3)

      The API works and I am able to query tasks and open them.

       

      The Middleware infrastructure is as follows.

      We have a Cluster with 2 managed servers.

      As of now when calling the API, I am giving the URL of the server on which the tasks are present as comma separated server and port names.

       

      t3://ms_server_1:port,ms_server_2:port

       

      Our administrators have created a VIP (Virtual IP) for the WLS and for the ADF application and web services, we are able to use the VIP url (http)

       

      I was wondering if there is any way to use the VIP for T3 protocol as well?

       

      The problem if we don't use the VIP is that when we open the tasks, they are pointing to the individual managed servers.

      So when one managed server is down, then the tasks cannot be open and the application will not work normally.

      And also if we have enabled security for the application it will ask the user to login second time when the task is opened.

       

      Can anyone please let me know if there is any way to use VIP url on T3 protocol ?

       

      Thanks for any help

      Sameer

        • 1. Re: BPM API over T3 Protocol using Virtual IP
          Anshul

          you can try enabling the http tunneling in your webserver which route the request.

           

          See this link :- Installing and Configuring the Apache HTTP Server Plug-In

          • 2. Re: BPM API over T3 Protocol using Virtual IP
            Sameer Darbha

            Hi Anshul

             

            Thank you very much for replying.

             

            Actually I forgot to mention that we are using OHS (Oracle HTTP Server) and not Apache.

            And our administrators said that the HTTP Tunneling is enabled already. The httpd.conf already has those tags

             

            I tried to use the VIP host name (1. without any port, 2. with 80 port and 3. with the port same as the managed server) but when I run my program, we get the following Exception

             

            Exception

            oracle.bpm.client.common.BPMServiceClientException: oracle.bpel.services.workflow.client.WorkflowServiceClientException: javax.naming.CommunicationException [Root exception is java.net.ConnectException: t3://vip_host_name.com:7831: Destination unreachable; nested exception is:

                    java.net.ConnectException: Connection refused: connect; No available router to destination]

                    at oracle.bpm.client.BPMServiceClientFactory.getBPMUserAuthenticationService(BPMServiceClientFactory.java:250)

                    at com.abc.publicModel.util.BPMTaskUtil.getIBPMContext(BPMTaskUtil.java:949)

                    at com.abc.publicModel.util.BPMTaskUtil.getUserTaskListWithDetails(BPMTaskUtil.java:133)

                    at com.abc.publicModel.util.BPMTaskUtil.main(BPMTaskUtil.java:972)

            Caused by: oracle.bpel.services.workflow.client.WorkflowServiceClientException: javax.naming.CommunicationException [Root exception is java.net.ConnectException: t3://vip_host_name.com:7831: Destination unreachable; nested exception is:

                    java.net.ConnectException: Connection refused: connect; No available router to destination]

                    at oracle.bpel.services.workflow.client.WorkflowServiceClientContext.createInitialContext(WorkflowServiceClientContext.java:686)

                    at oracle.bpel.services.workflow.client.WorkflowServiceClientContext.getJNDIInitialContext(WorkflowServiceClientContext.java:341)

                    at oracle.bpm.client.BPMServiceClientContext.getJNDIInitialContext(BPMServiceClientContext.java:228)

                    at oracle.bpm.client.BPMServiceClientFactory.getBPMUserAuthenticationService(BPMServiceClientFactory.java:243)

                    ... 3 more

             

            Thanks

            Sameer

            • 3. Re: BPM API over T3 Protocol using Virtual IP
              Nantha

              Sameer,

               

              Can you provide the rules in OHS config file?  Is OHS installed in each managed server?

               

              Is Weblogic server listening to Virtual IP?

              • 4. Re: BPM API over T3 Protocol using Virtual IP
                Sameer Darbha

                Hi Nantha

                 

                Following are the answers from our WLS Admin

                 

                Rules Defined in OHS config file?

                A: Created a separate vhost file for each VIP/PORT

                 

                Is OHS Installed in each managed server?

                A: It is not installed on the same servers as SOA servers, OHS is installed on its own standalone servers

                 

                Is Weblogic server listening to virtual IP?

                A: Yes

                 

                Thanks and Regards

                Sameer

                • 5. Re: BPM API over T3 Protocol using Virtual IP
                  Sameer Darbha

                  We cannot use the following API when the custom application does not know the password.

                  For example, the cases where the authentication is done by Active Directory etc.

                  IWorkflowContext ctx = querySvc.authenticate("user","pwd".toCharArry(),null);

                   

                  Instead we have to create the workflow context from the request object.

                  • 6. Re: BPM API over T3 Protocol using Virtual IP
                    Muhammed Soyer

                    Don't you have a cluster address? Why don't you hit it instead of the individual nodes ?

                    • 7. Re: BPM API over T3 Protocol using Virtual IP
                      Muhammed Soyer

                      And to avoid 2nd time authentication you can override the server in hwtaskflow.xml

                       

                      <TaskFlowServer>

                            <hostName>ssourl/cluster url</hostName>

                            <httpPort>80</httpPort>

                            <httpsPort/>

                         </TaskFlowServer>

                      • 8. Re: BPM API over T3 Protocol using Virtual IP
                        Sameer Darbha

                        Hi Muhammed

                         

                        Virtual IP address is what I meant by the Cluster URL.

                        I will try the entry in the hwtaskflow.xml

                         

                        Thanks

                        Sameer