WLI domain with 3 servers - issues on JPD process startup

Posted by XpiritO on Stack Overflow See other posts from Stack Overflow or by XpiritO
Published on 2010-05-07T15:33:59Z Indexed on 2010/05/07 15:38 UTC
Read the original article Hit count: 263

Filed under:
|
|
|

Hi there.

I'm currently working on a clustered WLI environment which comprehends 3 servers: 1 admin server ("AdminServer") and 2 managed servers ("mn1" and "mn2") grouped as a cluster, as follows:

Architecture diagram: http://img72.imageshack.us/img72/4112/clusterdiagram.jpg

I've developed a JPD process to execute some scheduled tasks, invoked using a Message Broker. I've deployed this project into a single-server WLI domain (with AdminServer only) and it works as expected: the JPD process is invoked (I've configured a Timer Event Generator instance to start it up).

Message broker: http://img532.imageshack.us/img532/1443/wlimessagebroker.jpg

Timer event generator: http://img408.imageshack.us/img408/7358/wlitimereventgenerator.jpg

In order to achieve fail-over and load-balancing capabilities, I'm currently trying to deploy this JPD process into this clustered WLI environment. Although, I'm having some issues with this, as I cannot get it to work properly, even if it still works.

Here is a screenshot of the "WLI Process Instance Monitor" (with AdminServer and mn1 instances up and running): http://img710.imageshack.us/img710/8477/wliprocessinstancemonit.jpg

According to this screen the process seems to be running, as it shows in this instance monitor screen. However, I don't see any output coming out neither at AdminServer console or mn1 console. In single-server domain it was visible output from JPD process "timeout" callback method, wich implementation is shown below:

@com.bea.wli.control.broker.MessageBroker.StaticSubscription(xquery = "", filterValueMatch = "", channelName = "/SamplePrefix/Samples/SampleStringChannel", messageBody = "{x0}")
    public void subscription(java.lang.String x0) {
        String toReturn="";
        try {
             Context myCtx = new InitialContext();
             MBeanHome mbeanHome = (MBeanHome)myCtx.lookup("weblogic.management.home.localhome");
             toReturn=mbeanHome.getMBeanServer().getServerName();
             System.out.println("**** executed at **** " + System.currentTimeMillis() +  " by: " + toReturn);
         }
         catch (Exception e) {
             System.out.println("Exception!"); 
             e.printStackTrace();
         } 
    }

(...)

@org.apache.beehive.controls.api.events.EventHandler(field = "myT", eventSet = com.bea.control.WliTimerControl.Callback.class, eventName = "onTimeout")
public void myT_onTimeout(long time, java.io.Serializable data) {
    // #START: CODE GENERATED - PROTECTED SECTION - you can safely add code above this comment in this method. #//
    // input transform
    System.out.println("**** published at **** " + System.currentTimeMillis());
    publishControl.publish("aaaa");
    // parameter assignment
    // #END  : CODE GENERATED - PROTECTED SECTION - you can safely add code below this comment in this method. #//
}

and here is the output visible at "AdminServer" console in single-server domain testing:

**** published at **** 1273238090713
**** executed at **** 1273238132123 by: AdminServer
**** published at **** 1273238152462
**** executed at **** 1273238152562 by: AdminServer
(...)

What may be wrong with my clustered configuration? Am I missing something to accomplish clustered deployment?

Thanks in advance for your help.

© Stack Overflow or respective owner

Related posts about weblogic10.x

Related posts about weblogic