EJB client still need EJB stub when it's already compiled?

Hi,
I know an EJB client needs stub of EJB components to compile itself. However, does an EJB client still need stub when it's executed?

Hi,
I know an EJB client needs stub of EJB components to
compile itself. EJB components should not need access to any stubs at compile time. All they need is access to the API classes, e.g. javax.ejb.*. The need for RMI-IIOP stubs is a vendor-specific issue. Some J2EE implementations require them, some don't. E.g., in the J2EE SDK we don't generate static RMI-IIOP stubs so the developer doesn't have to know about them at all.
However, does an EJB client still
need stub when it's executed?

Similar Messages

  • Do you still need EJB when you can do it all with JSF/JSC?

    I think EJBs make J2EE unnecessarily complex for 80% of small to mid or even some large scale applications. When you can separate the logic and view using JSF and Servlets, and still do transactions (using JSC DataProviders), why do you still need EJBs? I have heard nightmares with EJBs deployment and how its complex to move them over from test to production servers.
    Are EJBs getting obsolete and not worth learning? Afterall, in the Microsoft world, there is nothing like EJB and all they got is ASP.NET (similar to JSF) -- along with its associated data classes and .NEt framework. I am sure they also promote separating logic from presentation.
    I think JSF is the best thing Java world has got to compete with Microsoft on developer productivity for small to medium size applications.
    Message was edited by:
    Sabir

    J2EE EJB's are far from being a holy grial capable of solving any situation. They are complex, difficult to learn and code, but we need to be fair and tell the whole story.
    EJB's are part of the J2EE technology and offer infrastructure needed in complex applications. I.E., you mention
    "When you can separate the logic and view using JSF and Servlets, and still do transactions (using JSC DataProviders)"
    but these are only database level transactions. The J2EE app servers can handle global (and distributed) transactions involving different operations over different databases and transactions ruled by non-database software. Just imagine the complexity of handling a "rollback" of this kind. Put that in .NET pipe and try to smoke it.
    J2EE EJB Entity Beans were the black sheep of the family. They were oriented to easily handle fine operations (i.e. update a specific record of information) but on the other hand present a poor performance in operations over large sets of data. You can do some optimizations but..... Now the story is a bit different with JavaEE 5 and the Java Persistence API -inspired on Hibernate-.
    The bottom line is (as you mention in your post): J2EE/JavaEE are not needed by most of small or mid sized apps. However, I would strongly encourage you to have a look at the JavaEE 5 technology. The fact that portions of the JavaEE technology do not have a counterpart in .NET does not mean that they are not worth to (at least) have a look at them.
    Best regards
    Antonio

  • Still need Time Capsule when iCloud becomes available?

    My 500GB TC is full.  Planning to buy new MBP.  Wondering if I should also buy a new TC.  Also wondering whether iCloud will replace TC for backups.

    It's my impression that iCloud isn't intended to back up everything on a Mac.  If that's right, you wouldn't be able to restore your Mac from iCloud.  Even if you could, it might take days.

  • Told I need flash player when it's already installed.

    My machine always has the latest adobe flash player, and yet site after site tells me that I need to get flash player before I can use their program. What is going on?

    Welcome to the Adobe Forums, Gary.
    To better assist you with this issue we need to know:
    What is your operating system? (Windows or Mac) (XP, Vista, 7, 8)
    What browser do you use? (Internet Explorer, Firefox, Chrome, Opera, Safari)

  • Ejb client error

    Hi, I use jdev 10g. I created a session bean with wizards and after that I created I Ejb client for that bean. When I start the embedded server and run the client java file I get the following error :
    com.evermind.server.rmi.OrionRemoteException: jazn.com/admin is not allowed to call this EJB method, check your security settings (method-permission in ejb-jar.xml and security-role-mapping in orion-application.xml).
         at denemeSessionHome_StatelessSessionHomeWrapper1.create(denemeSessionHome_StatelessSessionHomeWrapper1.java:41)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at com.evermind.server.rmi.RMICallHandler.run(RMICallHandler.java:124)
         at com.evermind.server.rmi.RMICallHandler.run(RMICallHandler.java:48)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
         at java.lang.Thread.run(Thread.java:534)
    at connection to localhost/127.0.0.1 as admin
         at com.evermind.server.rmi.RMIConnection.EXCEPTION_ORIGINATES_FROM_THE_REMOTE_SERVER(RMIConnection.java:1527)
         at com.evermind.server.rmi.RMIConnection.invokeMethod(RMIConnection.java:1480)
         at com.evermind.server.rmi.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:55)
         at com.evermind.server.rmi.RecoverableRemoteInvocationHandler.invoke(RecoverableRemoteInvocationHandler.java:22)
         at __Proxy0.create(Unknown Source)
         at ejbpackage.denemeSessionClient.main(denemeSessionClient.java:21)
    Process exited with exit code 0.
    all settings are the default ones.
    Anyone has any idea???

    hi
    There was no problem with that... the AdviceClient is not in the package... I needed j2ee.jar and AdviceAppClient.jar to run the client and hte AdviceClient is in C\java\Projects\Advice directory.... can anyone help me with what is wrong with my first command which didnt work ...
    java -classpath c:\Sun\AppServer\lib\j2ee.jar;c:\java\Projects\Advice;c:\java\Projects\AdviceAppClient.jar AdviceClient
    This one worked though....
    java -cp {$CLASSPATH}:"C:\java\Projects\Advice";AdviceAppClient.jar;c:\Sun\AppServer\lib\j2ee.jar; AdviceClient
    I dont know what makes the difference...
    vidhya

  • EJB Client JAR project produces empty JAR

    I've built an EJB module in WorkSpace Studio using the "WebLogic EJB Project" type, which is part of an EAR. I created a couple stateless session beans within this project, and then created an EJB Client JAR project using the "EJB Client JAR-->Create EJB Client Jar" menu item on the EJB project's hidden menu.
    According to the documentation, exporting an EAR file from the EAR project will cause the client JAR to be generated. I exported the EAR file from the EAR project, and sure enough, it included the client JAR (in /APP-INF/lib/). I extracted the client JAR from the EAR and opened it up to make sure it contained all of the client-side classes. I discovered that the client JAR was empty, the only contents being the MANIFEST.MF file. The interface classes were instead contained in the EJB JAR itself.
    How can I get the EJB client code to actually be included in the EJB client JAR?
    Thanks,
    Eric

    Well I have tried this with 6.1 and first
    1. One would expect the jar name to be the name in the ejb-jar.xml -
    ejb-client-jar section
    2. It outputs the file XXXEJB_Compiled.jar but it is same size as base jar
    this is 6.1 sp3
    whats up?
    Matthew Shinn wrote:
    Hi Sanjay,
    There is a bug in the documentation. The client-jar name should never be part of the
    ejbc command line. Step 3 below should be something like:
    java weblogic.ejbc xxxEJB.jar xxxEJB_Compiled.jar
    If you have an ejb-client-jar entry in your ejb-jar.xml, the client jar should be placed
    in the directory from which you ran ejbc. Make sure that the classes that you want to be
    put in the client-jar are not loaded from the classpath. This is very important or your
    client-jar won't be created correctly. The client-jar will only contain classes loaded
    from the input jar to ejbc. A bug for the incorrect documentation has already been filed
    and should be fixed soon.
    - Matt
    Sanjay Dwivedi wrote:
    Hi,
    I am trying to use the
    <ejb-client-jar> sub-element of the Sun's <ejb-jar> (EB 2.0 DTD) element of the
    ejb-jar.xml to generate the ejb-client.jar. I followed the step as documented
    by WebLogic but the files in EJB jars and ejb-client jars are identical. Here
    is what I am doing:
    1. Build the xxxEJB.jar for my EJB by running the WebLogic.ejbc on the standard
    EJB jar file.
    2. My ejb-jar.xml file has following line:
    <ejb-jar>
    <ejb-client-jar>xxxEJBClient.jar</ejb-client-jar>
    </ejb-jar>
    3. Next I used the following command to generate the ejb-client.jar file
    java weblogic.ejbc xxxEJB.jar xxxEJBClient.jar
    My xxxEJBClient.jar files consists of exactly same files (with same sizes) as
    the xxxEJB.jar file. Only difference is that the xxxEJB.jar file includes generated
    java source files for the bean implementation class and home/remote classes.
    In my opinion the xxxEJBClient.jar should not contain the EJB implementation classes.
    Any experience using the ejb-client-jar for generating the ejb-client.jar?
    Thanks,
    Sanjay.
    [att1.html]

  • Use EJB client to communicate between 2 systems

    I have 2 systems A and B located in separate machine.
    A will pass an XML Request String to B, and B will return
    an XML Response string to A.
    My friend told me to write an EJB client sitting between
    A and B, maybe there is a method called process() in EJB Client.
    A can call XML_Response = EJB.process(XML_Request);
    XML_Response process(XML_Request)
         XML_Response = B.process(XML_Request)
         return XML_Response
    My question is how to get started? My understanding is EJB client
    will use EJB Beans. Any ideas??

    I would use entity beans on both, and then use Message Driven as facades, the message driven beans would communicate between each of the servers.

  • I am getting this problem when running ejb client

    Hi,
    Any one help me , i am getting this error when i run my ejb Client
    D:\sample\Client>
    java -Djava.naming.factory.initial=com.sun.jndi.cosnamin
    g.CNCtxFactory -Djava.naming.provider.url=iiop://localhost:1050 com.net.ejbexamples.slsb.EJBClient
    Exception in thread "main" org.omg.CORBA.COMM_FAILURE: minor code: 1398079490
    completed: No
    at com.sun.corba.se.internal.iiop.IIOPConnection.writeLock(IIOPConnectio
    n.java:956)
    at com.sun.corba.se.internal.iiop.IIOPConnection.send(IIOPConnection.jav
    a:1017)
    at com.sun.corba.se.internal.iiop.IIOPOutputStream.invoke(IIOPOutputStre
    am.java:71)
    at com.sun.corba.se.internal.iiop.ClientRequestImpl.invoke(ClientRequest
    Impl.java:82)
    at com.sun.corba.se.internal.corba.ClientDelegate.invoke(ClientDelegate.
    java:153)
    at com.sun.corba.se.internal.corba.InitialNamingClient.resolve(InitialNa
    mingClient.java:195)
    at com.sun.corba.se.internal.corba.InitialNamingClient.cachedInitialRefe
    rences(InitialNamingClient.java:260)
    at com.sun.corba.se.internal.corba.InitialNamingClient.resolve_initial_r
    eferences(InitialNamingClient.java:183)
    at com.sun.corba.se.internal.corba.ORB.resolve_initial_references(ORB.ja
    va:1465)
    at weblogic.iiop.IORManager.createInitialReference(IORManager.java:113)
    at weblogic.corba.j2ee.naming.InitialContextFactoryImpl.getInitialContex
    t(InitialContextFactoryImpl.java:96)
    at weblogic.corba.j2ee.naming.InitialContextFactoryImpl.getInitialContex
    t(InitialContextFactoryImpl.java:86)
    at weblogic.jndi.WLInitialContextFactory.getInitialContext(WLInitialCont
    extFactory.java:149)
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:6
    60)
    at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:241
    at javax.naming.InitialContext.init(InitialContext.java:217)
    at javax.naming.InitialContext.<init>(InitialContext.java:193)
    at com.net.ejbexamples.slsb.EJBClient.main(EJBClient.java:15)
    Thanks

    Found in negative cache.... very strange.
    RFC found in negative cache
    What is the negative cache?

  • Need a Help to Run the EJB client

    Hello Friends,
    I'm using EJB3.0. while running my client side bean I got a Exception like this " javax.naming.NameNotFoundException: maheshwaran.count not bound." I'm new to EJB so i couldn't find specifically what is the mistake in my files.
    I created the following files. It are listed below
    FileName: count.java
    "package maheshwaran;
    public interface count {
    public int count();
    public void set(int val);
    public void remove();
    FileName2 : countBean.java
    "package maheshwaran;
    import javax.ejb.*;
    import javax.interceptor.Interceptors;
    @Stateful
    @Remote(count.class)
    @Interceptors(countCallBacks.class)
    public class countBean implements count{
    private int val;
    public int count(){
    System.out.println("count()");
    return ++val;
    public void set(int val){
    this.val=val;
    System.out.println("set()");
    @Remove
    public void remove(){
    System.out.println("remove()");
    FileName3: countCallBacks.java
    " package maheshwaran;
    import javax.annotation.PostConstruct;
    import javax.annotation.PreDestroy;
    import javax.ejb.*;
    import javax.interceptor.InvocationContext;
    public class countCallBacks {
    @PostConstruct
    public void construct(InvocationContext ctx){
    System.out.println("cb:construct()");
    @PostActivate
    public void activate(InvocationContext ctx){
    System.out.println("cb:activate()");
    @PrePassivate
    public void passivate(InvocationContext ctx){
    System.out.println("cb:passivate()");
    @PreDestroy
    public void destroy(){
    System.out.println("cb:destroy()");
    The client side class is following: countClient.java
    "package maheshwaran;
    import javax.naming.*;
    public class countClient {
    public static final int noofClients=3;
    public static void main(String args[]){
    try{
    Context ctx=new InitialContext(System.getProperties());
    count count[]=new count[noofClients];
    int countval=0;
    System.out.println("Instatntiating Beans");
    for(int i=0;i<noofClients;i++){
    count=(count) ctx.lookup(count.class.getName());
    count.set(countval);
    countval=count.count();
    System.out.println(countval);
    Thread.sleep(100);
    System.out.println("Calling count on Beans");
    for(int i=0;i<noofClients;i++){
    countval=count.count();
    System.out.println(countval);
    count.remove();
    Thread.sleep(50);
    }catch(Exception e){e.printStackTrace();}
    The Deployment Descriptor file is following: ejb-jar.xml
    "><?xml version="1.0" encoding="UTF-8?>
    <ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" version="3.0"
    xmlns:xsi="http://www.w3.org/2001/XMLschema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">
    <description>Stateful Session Bean Example</description>
    <display-name>Stateful Session Bean Example</display-name>
    <enterprise-beans>
    <session>
    <ejb-name>countBean</ejb-name>
    <business-remote>maheshwaran_dd.count</business-remote>
    </business-remote>
    <ejb-class>maheshwaran_dd.countBean</ejb-class>
    <session-type>Stateful</session-type>
    <transaction-type>Container</transaction-type>
    </session>
    </enterprise-beans>
    <interceptors>
    <interceptor>
    <interceptor-class>maheshwaran_dd.countCallBacks</interceptor-class>
    <post-construct>
    <lifecycle-callback-method>construct</lifecycle-clallback-method>
    </post-construct>
    <post-activate>
    <lifecycle-callback-method>activate</lifecycle-callback-method>
    </post-activate>
    <pre-passivate>
    <lifecycle-callback-method>passivate</lifecycle-callback-method>
    </pre-passivate>
    </interceptor>
    </interceptors>
    <assembly-descriptor>
    <interceptor-binding>
    <ejb-name>countBean</ejb-name>
    <interceptor-class>maheshwaran_dd.countCallBacks</interceptor-class>
    </interceptor-binding>
    </assembly-descriptor>
    </ejb-jar> "
    please help me to rectify this problem.
    Thanks & regards,
    Maheshwaran Devaraj

    Hi,
    user586 wrote:
    i want to write the query to select the coupon whose Expiry date in the table is NOT within 30 days.If you mean expirationdate (datatype: DATE) is not within 30 days (past or future) of run time, then:
    SELECT  coupon          -- or whatever columns you want
    FROM    table_x
    WHERE   expirationdate  NOT BETWEEN  SYSDATE - 30
                                AND      SYSDATE + 30
    ;

  • Problem using CORBA clients with RMI/EJB servers..!!!???

    Hi,
    I have a question on using EJB / or RMI servers with CORBA clients using
    RMI-IIOP transport, which in theory should work, but in practice has few
    glitches.
    Basically, I have implemented a very simple server, StockTreader, which
    looks up for a symbol and returns a 'Stock' object. In the first example, I
    simplified the 'Stock' object to be a mere java.lang.String, so that lookup
    would simply return the 'synbol'.
    Then I have implemented the above, as an RMI-IIOP server (case 1) and a
    CORBA server (case 2) with respective clients, and the pair of
    client-servers work fine as long as they are CORBA-to-CORBA and RMI-to-RMI.
    But the problem arises when I tried using the RMI server (via IIOP) with the
    CORBA client, when the client tries to narrow the object ref obtained from
    the naming service into the CORBA idl defined type (StockTrader) it ends up
    with a class cast exception.
    This is what I did to achieve the above results:
    [1] Define an RMI interface StockTrader.java (extending java.rmi.Remote)
    with the method,
    public String lookup( String symbol) throws RMIException;
    [2] Implement the StorckTrader interface (on a PortableRemoteObject derived
    class, to make it IIOP compliant), and then the server to register the stock
    trader with COS Naming service as follows:
    String homeName =....
    StockTraderImpl trader =new StockTraderImpl();
    System.out.println("binding obj <" homeName ">...");
    java.util.Hashtable ht =new java.util.Hashtable();
    ht.put("java.naming.factory.initial", args[2]);
    ht.put("java.naming.provider.url", args[3]);
    Context ctx =new InitialContext(ht);
    ctx.rebind(homeName, trader);
    [3] Generate the RMI-IIOP skeletons for the Implementation class,
    rmic -iiop stock.StockTraderImpl
    [4] generate the IDL for the RMI interface,
    rmic -idl stock.StockTraderImpl
    [5] Generate IDL stubs for the CORBA client,
    idlj -v -fclient -emitAll StockTraderImpl.idl
    [6] Write the client to use the IDL-defined stock trader,
    String serverName =args[0];
    String symList =args[1];
    StockClient client =new StockClient();
    System.out.println("init orb...");
    ORB orb =ORB.init(args, null);
    System.out.println("resolve init name service...");
    org.omg.CORBA.Object objRef
    =orb.resolve_initial_references("NameService");
    NamingContext naming =NamingContextHelper.narrow(objRef);
    ... define a naming component etc...
    org.omg.CORBA.Object obj =naming.resolve(...);
    System.out.println("narrow objRef: " obj.getClass() ": " +obj);
    StockTrader trader =StockTraderHelper.narrow(obj);
    [7] Compile all the classes using Java 1.2.2
    [8] start tnameserv (naming service), then the server to register the RMI
    server obj
    [9] Run the CORBA client, passing it the COSNaming service ref name (with
    which the server obj is registered)
    The CORBA client successfully finds the server obj ref in the naming
    service, the operation StockTraderHelper.narrow() fails in the segment
    below, with a class cast exception:
    org.omg.CORBA.Object obj =naming.resolve(...);
    StockTrader trader =StockTraderHelper.narrow(obj);
    The <obj> returned by naming service turns out to be of the type;
    class com.sun.rmi.iiop.CDRInputStream$1
    This is of the same type when stock trader object is registered in a CORBA
    server (as opposed to an RMI server), but works correctly with no casting
    excpetions..
    Any ideas / hints very welcome.
    thanks in advance,
    -hari

    On the contrary... all that is being said is that we needed to provide clearer examples/documentation in the 5.1.0 release. There will be no difference between the product as found in the service pack and the product found in the 5.1.1. That is, the only substantive will be that 5.1.1 will also
    include the examples.
    "<=one way=>" wrote:
    With reference to your and other messages, it appears that one should not
    expect that WLS RMI-IIOP will work in a complex real-life system, at least
    not now. In other words, support for real-life CORBA clients is not an
    option in the current release of WLS.
    TIA
    "Eduardo Ceballos" <[email protected]> wrote in message
    news:[email protected]...
    We currently publish an IDL example, even though the IDL programmingmodel in Java is completely non-functional, in anticipation of the support
    needs for uses who need to use IDL to talk to the Weblogic server,
    generically. This example illustrates the simplest connectivity; it does not
    address how
    to integrate CORBA and EJB, a broad topic, fraught with peril, imo. I'llnote in passing that, to my knowledge, none of the other vendors attempt
    this topic either, a point which is telling if all the less happy to hear.
    For the record then, what is missing from our distribution wrt RMI-IIOPare a RMI-IIOP example, an EJB-IIOP example, an EJB-C++. In this you are
    correct; better examples are forth coming.
    Still, I would not call our RMI-IIOP implementation fragile. I would saythat customers have an understandably hard time accepting that the IDL
    programming model is busted; busted in the sense that there are no C++
    libraries to support the EJB model, and busted in the sense that there is
    simply no
    support in Java for an IDL interface to an EJB. Weblogic has nothing to doit being busted, although we are trying to help our customers deal with it
    in productive ways.
    For the moment, what there is is a RMI (over IIOP) programming model, aninherently Java to Java programming model, and true to that, we accept and
    dispatch IIOP request into RMI server objects. The way I look at it is this:
    it's just a protocol, like HTTP, or JRMP; it's not IDL and it has
    practically nothing to do with CORBA.
    ST wrote:
    Eduardo,
    Can you give us more details about the comment below:
    I fear that as soon as the call to narrow succeeds, the remainingapplication will fail to work correctly because it is too difficult ot
    use an idl client in java to work.It seems to me that Weblogic's RMI-IIOP is a very fragile
    implementation. We
    don't need a "HelloWorld" example, we need a concrete serious example(fully
    tested and seriously documented) that works so that we can get a betteridea
    on how to integrate CORBA and EJB.
    Thanks,
    Said
    "Eduardo Ceballos" <[email protected]> wrote in message
    news:[email protected]...
    Please post request to the news group...
    As I said, you must separate the idl related classes (class files and
    java
    files) from the rmi classes... in the rmic step, you must set a newtarget
    (as you did), emit the java files into that directory (it's not clearyou
    did this), then remove all the rmi class files from the class path... ifyou
    need to compile more classes at that point, copy the java files to theidl
    directly is you must, but you can not share the types in any way.
    I fear that as soon as the call to narrow succeeds, the remainingapplication will fail to work correctly because it is too difficult otuse
    an idl client in java to work.
    Harindra Rajapakshe wrote:
    Hi Eduardo,
    Thanks for the help. That is the way I compiled my CORBA client, by
    separating the IDL-generated stubs from the RMI ones, but still I
    get a
    CORBA.BAD_PARAM upon narrowing the client proxy to the interfacetype.
    Here's what I did;
    + Define the RMI interfaces, in this case a StockTrader interface.
    + Implement RMI interface by extendingjavax.rmi.PortableRemoteObject
    making
    it IIOP compliant
    + Implemnnt an RMI server, and compile using JDK1.2.2
    + use the RMI implementation to generate CORBA idl, using RMI-IIOPplugin
    utility rmic;
    rmic -idl -noValueMethods -always -d idl stock.StockTraderImpl
    + generate Java mappings to the IDL generated above, using RMI-IIOPplugin
    util,
    idlj -v -fclient -emitAll -tf src stocks\StockTrader.idl
    This creates source for the package stock and also
    org.omg.CORBA.*
    package, presumably IIOP type marshalling
    + compile all classes generated above using JDK1.2.2
    + Implement client (CORBA) using the classes generated above, NOTthe
    RMI
    proxies.
    + start RMI server, with stockTrader server obj
    + start tnameserv
    + start CORBA client
    Then the client errors when trying to narrow the obj ref from the
    naming
    service, into the CORBA IDL defined interface using,
    org.omg.CORBA.Object obj =naming.resolve(nn);
    StockTrader trader =StockTraderHelper.narrow(obj); // THIS
    ERRORS..!!!
    throwing a CORBA.BAD_PARAM exception.
    any ideas..?
    Thanks in advance,
    -hari
    ----- Original Message -----
    From: Eduardo Ceballos <[email protected]>
    Newsgroups: weblogic.developer.interest.rmi-iiop
    To: Hari Rajapakshe <[email protected]>
    Sent: Wednesday, July 26, 2000 4:38 AM
    Subject: Re: problem using CORBA clients with RMI/EJBservers..!!!???
    Please see the post on june 26, re Errors compiling... somewherein
    there,
    I suspect, you are referring to the rmi class file when you are
    obliged
    to
    completely segregate these from the idl class files.
    Hari Rajapakshe wrote:
    Hi,
    I have a question on using EJB / or RMI servers with CORBA
    clients
    using
    RMI-IIOP transport, which in theory should work, but in practice
    has
    few
    glitches.
    Basically, I have implemented a very simple server,
    StockTreader,
    which
    looks up for a symbol and returns a 'Stock' object. In the firstexample, I
    simplified the 'Stock' object to be a mere java.lang.String, so
    that
    lookup
    would simply return the 'synbol'.
    Then I have implemented the above, as an RMI-IIOP server (case
    1)
    and a
    CORBA server (case 2) with respective clients, and the pair of
    client-servers work fine as long as they are CORBA-to-CORBA andRMI-to-RMI.
    But the problem arises when I tried using the RMI server (via
    IIOP)
    with
    the
    CORBA client, when the client tries to narrow the object ref
    obtained
    from
    the naming service into the CORBA idl defined type (StockTrader)
    it
    ends
    up
    with a class cast exception.
    This is what I did to achieve the above results:
    [1] Define an RMI interface StockTrader.java (extending
    java.rmi.Remote)
    with the method,
    public String lookup( String symbol) throws RMIException;
    [2] Implement the StorckTrader interface (on a
    PortableRemoteObject
    derived
    class, to make it IIOP compliant), and then the server to
    register
    the
    stock
    trader with COS Naming service as follows:
    String homeName =....
    StockTraderImpl trader =new StockTraderImpl();
    System.out.println("binding obj <" homeName ">...");
    java.util.Hashtable ht =new java.util.Hashtable();
    ht.put("java.naming.factory.initial", args[2]);
    ht.put("java.naming.provider.url", args[3]);
    Context ctx =new InitialContext(ht);
    ctx.rebind(homeName, trader);
    [3] Generate the RMI-IIOP skeletons for the Implementation
    class,
    rmic -iiop stock.StockTraderImpl
    [4] generate the IDL for the RMI interface,
    rmic -idl stock.StockTraderImpl
    [5] Generate IDL stubs for the CORBA client,
    idlj -v -fclient -emitAll StockTraderImpl.idl
    [6] Write the client to use the IDL-defined stock trader,
    String serverName =args[0];
    String symList =args[1];
    StockClient client =new StockClient();
    System.out.println("init orb...");
    ORB orb =ORB.init(args, null);
    System.out.println("resolve init name service...");
    org.omg.CORBA.Object objRef
    =orb.resolve_initial_references("NameService");
    NamingContext naming=NamingContextHelper.narrow(objRef);
    ... define a naming component etc...
    org.omg.CORBA.Object obj =naming.resolve(...);
    System.out.println("narrow objRef: " obj.getClass() ":"
    +obj);
    StockTrader trader =StockTraderHelper.narrow(obj);
    [7] Compile all the classes using Java 1.2.2
    [8] start tnameserv (naming service), then the server to
    register
    the
    RMI
    server obj
    [9] Run the CORBA client, passing it the COSNaming service ref
    name
    (with
    which the server obj is registered)
    The CORBA client successfully finds the server obj ref in the
    naming
    service, the operation StockTraderHelper.narrow() fails in thesegment
    below, with a class cast exception:
    org.omg.CORBA.Object obj =naming.resolve(...);
    StockTrader trader =StockTraderHelper.narrow(obj);
    The <obj> returned by naming service turns out to be of the
    type;
    class com.sun.rmi.iiop.CDRInputStream$1
    This is of the same type when stock trader object is registeredin a
    CORBA
    server (as opposed to an RMI server), but works correctly with
    no
    casting
    excpetions..
    Any ideas / hints very welcome.
    thanks in advance,
    -hari

  • How to get remote ejb client working with Weblogic 8.1?

    I have Weblogic 8.1 running on a WinXP box behind my firewall. Port 7001 is open to WL and remote browsers can access the console.
    I have a client machine running WinXP on a different network that is remote to the WL server. It can ping the WL server machine.
    I use JVM 1.4.2_08 on all machines.
    If I put my client machine on the LAN with the WL server, then my EJB test client works fine. If I put the client machine on the remote network then the test client fails with a ClassCastException when trying to do a PortableRemoteObject.narrow on the bean home.
    I had this running fine on JBoss 3.22 using RMI over HTTP. I added an HTTP invoker service to my jboss.xml file. I don't know if something similar is needed on the Weblogic side - any ideas on that? All I've done on the WL side is turn on Tunneling - which obviously works because the remote client gets a correct home object when doing a lookup on the bean - based on the IOR string of the home obj.
    Below I include my client code, exception, ejb-jar.xml and my weblogic-ejb-jar.xml.
    Any ideas on what else needs to be done so that a remote client can do a PortableRemoteObject.narrow? My client.jar has all of the EJB classes, and runs fine when run from LAN.
    Thanks,
    --BobC
    Client Code
    Properties p = new Properties();
    p.put("java.naming.factory.initial", "weblogic.jndi.WLInitialContextFactory");
    p.put("java.naming.provider.url", "http://66.114.140.213:7001");
    InitialContext ic = new InitialContext(p);
    // Test register bean
    Object homeObj = ic.lookup("tacplanner/register");
    RegisterHome home = (RegisterHome) PortableRemoteObject.narrow(homeObj, RegisterHome.class); // <<< ClassCastException here
    Exception
    java.lang.ClassCastException
    at com.sun.corba.se.internal.javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:293)
    at javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:134)
    at com.nimblus.tacplanner.test.TestUtils.<init>(TestUtils.java:60)
    at com.nimblus.tacplanner.test.TestUtils.main(TestUtils.java:196)
    ejb-jar.xml
    <?xml version="1.0"?>
    <!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN' 'http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd'>
    <ejb-jar>
    <enterprise-beans>
    <session>
    <ejb-name>register</ejb-name>
    <home> com.nimblus.tacplanner.server.ejb.stateless.RegisterHome</home>
    <remote> com.nimblus.tacplanner.server.ejb.stateless.Register</remote>
    <ejb-class>com.nimblus.tacplanner.server.ejb.stateless.RegisterSession</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <resource-ref>
    <description>The Oracle Datasource</description>
    <res-ref-name>java:/OracleDS</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </session>
    </enterprise-beans>
    <assembly-descriptor>
    <container-transaction>
    <method>
    <ejb-name>register</ejb-name>
    <method-name>*</method-name>
    </method>
    <trans-attribute>Required</trans-attribute>
    </container-transaction>
    </ejb-jar>
    weblogic-ejb-jar.xml
    <?xml version="1.0"?>
    <!DOCTYPE weblogic-ejb-jar PUBLIC
    '-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB//EN'
    'http://www.bea.com/servers/wls810/dtd/weblogic-ejb-jar.dtd'>
    <weblogic-ejb-jar>
    <weblogic-enterprise-bean>
    <ejb-name>register</ejb-name>
    <stateless-session-descriptor>
    <pool>
    <max-beans-in-free-pool>100</max-beans-in-free-pool>
    </pool>
    </stateless-session-descriptor>
    <reference-descriptor>
    <resource-description>
    <res-ref-name>jdbc/OracleDS</res-ref-name>
    <jndi-name>OracleDS</jndi-name>
    </resource-description>
    </reference-descriptor>
    <enable-call-by-reference>True</enable-call-by-reference>
    <jndi-name>tacplanner/register</jndi-name>
    </weblogic-enterprise-bean>
    </weblogic-ejb-jar>
    --------------------

    Problem solved.
    For remote clients you need to generate and use the stub classes for EJB interfaces using Weblogic's appc utility.
    See: "http://e-docs.bea.com/wls/docs81/ejb/appc_ejbc.html#1151900"
    --BobC                                                                                                                                                                                                                                                                                                                                                                                                                               

  • EJB client recovery

    Hi,
    I have a java client application using EJBs, and talking to a EJB server (j2ee sdk 1.3) successfully.
    Now I stop the EJB server while the client is running, and restart the server again. I would like my client to recover automatically without the need of stoppin/restarting it.
    When the server stops, my client enters in a 'resume mode' when it tries to recreate new EJBs.
    Unfortunately, when the server is back up and running, the creation of EJBs still raises a MarshallException and it even hangs after a while.
    My approach is a bit innocent, but is there a smarter solution that would work?
    Thanks

    Try to do a clean up at the client code when u determine that the EJB server is down. Is the intent to failover to another ejb server and continue with the session then you may require Sun's enterprise edition which supports sfsb failover.

  • Basic question: what to provide EJB client

    Weblogic 6.1, SP1, on Red Hat Linux and Windows 2000
    I have been developing an application for a few months now, but all EJBs have
    only had local interfaces. My team now needs to expose a few remote interfaces
    to another division of my company that's using WLS on another server. I understand
    the changes that I need to make on the server side. I have searched the documentation
    several times for help, but I can't seem to find a "Start here" page on how to
    create the client Jar.
    My understanding is this so far. For the server that will contain and run the
    beans, I still bundle up the MyServiceBean, MyServiceRemote, and MyServiceHome
    class files into a jar and run ejbc to perform the EJB compiling. My Manifest's
    Class-Path element references some helper Jars like exceptions and value objects.
    Once that's done, I then create a separate jar for the client. I must modify
    my ejb-jar.xml file to add an ejb-client-jar element with MyServiceClient.jar
    (or whatever the final file name will be) as its value. The client jar should
    otherwise contain the same classes as the server jar, but without the bean class.
    And then I also just provide the helper jars as well.
    I'm sure I don't have this right yet, and I'd really appreciate some insight.
    But then I have a more fundamental question: how does the client know which server
    contains my EJBs? I haven't found this info in any deployment descriptor. The
    only guess I have so far is that when the client creates an InitialContext to
    fetch the home interface, they have to specify a ProviderUrl with my server's
    IP address when they create an Environment.
    Any help would be greatly appreciated. Thanks so much.
    Andy

    You don't really need to put an entry for ejb-client-jar element in the
    ejb-jar.xml. You can still create your client and run it. Only thing is that
    you need to put ur client jar in the classpath of your java client.
    Hey Seth, where exactly is the ejb-client-jar entry is used ? I mean without
    this also you can run ur client. Where does this help?
    Rupesh.
    Andrew Byala <[email protected]> wrote in message
    news:[email protected]...
    >
    Hey, thanks for the rapid reply, Seth. But I'm wondering about theejb-client-jar
    element of the ejb-jar.xml file. It seems a bit silly to use the xml filein
    one version to generate my server-side Jar, and then have to make anotherversion
    to generate the client-side Jar. Is there a simple way to do this withoutwriting
    custom Ant tasks or anything like that?
    Seth White <[email protected]> wrote:
    Andrew Byala wrote:
    Weblogic 6.1, SP1, on Red Hat Linux and Windows 2000
    I have been developing an application for a few months now, but allEJBs have
    only had local interfaces. My team now needs to expose a few remoteinterfaces
    to another division of my company that's using WLS on another server.I understand
    the changes that I need to make on the server side. I have searchedthe documentation
    several times for help, but I can't seem to find a "Start here" pageon how to
    create the client Jar.
    My understanding is this so far. For the server that will containand run the
    beans, I still bundle up the MyServiceBean, MyServiceRemote, and
    MyServiceHome
    class files into a jar and run ejbc to perform the EJB compiling.My Manifest's
    Class-Path element references some helper Jars like exceptions andvalue objects.
    Once that's done, I then create a separate jar for the client. I mustmodify
    my ejb-jar.xml file to add an ejb-client-jar element with
    MyServiceClient.jar
    (or whatever the final file name will be) as its value. The clientjar should
    otherwise contain the same classes as the server jar, but without thebean class.
    And then I also just provide the helper jars as well.
    I'm sure I don't have this right yet, and I'd really appreciate someinsight.
    Sounds like you've got it, actually. The client just needs to have the
    remote interface
    classes
    for the bean + helper classes in its classpath. Any generated RMIclasses
    will be loaded
    over the network, if needed.
    But then I have a more fundamental question: how does the client knowwhich server
    contains my EJBs? I haven't found this info in any deployment
    descriptor.
    The
    only guess I have so far is that when the client creates an
    InitialContext
    to
    fetch the home interface, they have to specify a ProviderUrl with myserver's
    IP address when they create an Environment.To the best of my knowledge, this is correct as well.
    Any help would be greatly appreciated. Thanks so much.
    Andy

  • How can I run EJB Client in other computer ?

    Hello,
    I'm trying to run converter examples.
    if ejb client pgm resides on a same machine with j2ee server , it works fine.
    But when I put client pgm on a different maching
    below message show.
    No application client descriptors defined for: ConverterClinet
    I put ConverterApp.ear, ConverterAppClient.jar and ConverterClient.class on the machine and
    set APPCPATH=ConverterAppClient.jar
    set VMARGS=-Dorg.omg.CORBA.ORBInitialHost=xxx.xxx.xx.xx
    What should I do to run ejb client on different machine?

    Hi SangHPark,
    I had the same problem but have solved it and it works.
    I ran the client remotely from a win98 box.
    Keep two things in mind
    1> Deploy the applications to an ip address and not to the local host using the deploy too. Use the deploy tool Gui to add a new server and then deploy the application to this ip address.
    2> I am running j2ee version 1.3 and jsdk 1.3
    Use the following code but instead of using "java:comp/env/ejb/SimpleConverter" use the jndi name of the object: "MyConverter" as specified in the tutorial.
    Properties prop = new Properties();
    prop.setProperty(Context.INITIAL_CONTEXT_FACTORY,"com.sun.enterprise.naming.SerialInitContextFactory");
    prop.setProperty(Context.PROVIDER_URL,"IIOP://xxx.xx.x.xxx:1050");
    System.out.println("Attempting to create context...");
    Context initial = new InitialContext(prop);
    // Instead of this use the below line of code
    //Object objref = initial.lookup("java:comp/env/ejb/SimpleConverter");
    Object objref = initial.lookup("MyConverter");
    // MyConverter is the Jndi name of the ConverterBean as per the tutorial
    You need to do the following things.
    1> After making changes to the code recompile using Ant and redeploy it.
    2> Copy the j2ee.jar, ConverterAppClient.jar and ConverterClient.class file to the machine that u want to run the client from.
    3> create a directory called "config" on the remote machine where you copied the files in step two.
    4> Copy to this directory the files ejb.properties and security.properties from your j2ee_home\config\ directory.
    For example you copied the files in step 2 on the remote machine in the c:\test directory. Create c:\test\config directory and copy the files from step 4 into this directory.
    5> Run the following command from the directory where u copied the client files
    java -Dorg.omg.CORBA.ORBInitialHost="host name" -classpath .\j2ee.jar;.;.\ConverterAppClient.jar ConverterClient
    Monal

  • Multiple EJB clients blocking

    I tried to ask this question a few months ago, but I must not have given enough
    details
    for anyone to even guess what my problem might be. So I created a simple example
    to
    demonstrate what's happening.
    I have a cluster of 2 WL servers (7.0) running on Linux. When I call an EJB multiple
    times at once from different threads in a client application, sometimes all the
    threads
    finish in a few milliseconds, but other times at least one of the threads will
    pause
    for 60 seconds before finishing. There are no error or warning indicators in any
    server
    log files. I'm trying to do something very simple: add one to a number in a database
    table without letting any two clients get the same number.
    I'm using DB2 as my database and COM.ibm.db2.jdbc.app.Driver as my driver. I have
    a
    JDBC connection pool and a DataSource, which I'm using in a stateless session
    bean.
    I lock the table in exclusive mode, query the current number, and add one to it.
    I'm
    using container-managed transactions, so I'm relying on the container to commit
    the
    update when the method ends. (I tried using a bean-managed transaction, and I
    got the
    same results.)
    For a long time I believed the problem must be with DB2, but when I put the exact
    same
    code in a JSP, it works just fine. So I know that DB2 can do what I'm asking it
    to do.
    I also tried it on a Windows NT server, and it behaves exactly the same. Comparing
    thread dumps of the two servers in the cluster taken during one of these 60 second
    wait periods doesn't show any obvious problems: the two servers both have exactly
    the
    same threads going, and they all seem pretty reasonable to me.
    Here is the code for my EJB:
    package com.davisvision.cv;
    import java.sql.*;
    import javax.ejb.*;
    public class SimpleBean implements SessionBean {
    SessionContext ctx;
    public void ejbCreate() {
    public void ejbPostCreate() {
    public void ejbRemove() {
    public void ejbActivate() {
    public void ejbPassivate() {
    public void setSessionContext(SessionContext c) {
    ctx = c;
    public int nextNumber() {
    String tableName = "TEST.PROVIDER_SPAWN";
    Connection con = null;
    int num = 0;
    try {
    con = CvDatabase.getConnection();
    con.setAutoCommit(false);
    Statement stmt = con.createStatement();
    stmt.executeUpdate("LOCK TABLE " + tableName + " IN EXCLUSIVE MODE");
    ResultSet rs = stmt.executeQuery("SELECT NEXT_OFFICE_NUM FROM "
    + tableName + " WHERE PROVIDER_TYPE = 'DAVIS2'");
    if (rs.next()) {
    num = rs.getInt(1);
    num++;
    int updated = stmt.executeUpdate("UPDATE " + tableName
    + " SET NEXT_OFFICE_NUM = " + num
    + " WHERE PROVIDER_TYPE = 'DAVIS2'");
    catch(Exception e) {
    num = -1;
    Logger.writeDated(Logger.FATAL, "SimpleBean.nextNumber: " + e);
    finally {
    CvDatabase.close(con);
    return num;
    And here is my client application:
    package test;
    import com.davisvision.cv.*;
    import java.util.*;
    import javax.ejb.*;
    import javax.naming.*;
    import javax.rmi.PortableRemoteObject;
    public class TestSimpleBean implements Runnable {
    static InitialContext ctx;
    public int taskNum;
    static void getContext() {
    Properties env = new Properties();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
    env.put(Context.PROVIDER_URL, "t3://weblogictest:7055");
    try {
    ctx = new InitialContext(env);
    catch(NamingException e) {
    System.out.println("Unable to obtain an initial JNDI context:
    " + e);
    public void run() {
    System.out.println("Thread " + taskNum + " started.");
    try {
    Object obj = ctx.lookup("ejb-cv-Simple");
    SimpleHome h = (SimpleHome) PortableRemoteObject.narrow(obj, SimpleHome.class);
    SimpleRemote r = h.create();
    int n = r.nextNumber();
    System.out.println("Thread " + taskNum + " next number = " + n);
    catch(Exception e) {
    System.out.println("Error in thread " + taskNum + ": " + e);
    System.out.println("Thread " + taskNum + " ended.");
    public static void main(String[] args) {
    getContext();
    int n = 3;
    TestSimpleBean x = null;
    Thread t = null;
    // start each thread
    for (int i = 0; i < n; i++) {
    x = new TestSimpleBean();
    x.taskNum = i;
    t = new Thread(x);
    t.start();
    System.out.println("" + n + " threads started.");
    My deployment descriptors are as simple as I could make them:
    <?xml version="1.0"?>
    <!DOCTYPE ejb-jar PUBLIC
    "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN"
    "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
    <ejb-jar>
    <enterprise-beans>
    <session>
    <ejb-name>Simple</ejb-name>
    <home>com.davisvision.cv.SimpleHome</home>
    <remote>com.davisvision.cv.SimpleRemote</remote>
    <ejb-class>com.davisvision.cv.SimpleBean</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    </session>
    </enterprise-beans>
    <assembly-descriptor>
    <container-transaction>
    <method>
    <ejb-name>Simple</ejb-name>
    <method-name>
    </method-name>
    </method>
    <trans-attribute>
    Required
    </trans-attribute>
    </container-transaction>
    </assembly-descriptor>
    </ejb-jar>
    <?xml version="1.0"?>
    <!DOCTYPE weblogic-ejb-jar PUBLIC
    "-//BEA Systems, Inc.//DTD WebLogic 6.0.0 EJB//EN"
    "http://www.bea.com/servers/wls600/dtd/weblogic-ejb-jar.dtd" >
    <weblogic-ejb-jar>
    <weblogic-enterprise-bean>
    <ejb-name>Simple</ejb-name>
    <jndi-name>ejb-cv-Simple</jndi-name>
    </weblogic-enterprise-bean>
    </weblogic-ejb-jar>
    This is from part of a production application, so to make sure our users aren't
    getting
    random 60-second pauses, I have the production bean deployed on just one server
    in the
    cluster with just one bean in the pool. But I really need to find the solution
    to this
    problem before development goes much further. Any guesses, sugestions, or conjectures
    would be most welcome.
    - gary

    Oops, I didn't notice that I only attached one file last time. The thread dump
    from the other server in the cluster is attached.
    My (off-topic) Linux problem must be something else: Signaling the parent
    java process was one of the first things I tried. It may have to do with the
    way that we start WL (in the background with nohup).
    - gary
    Rob Woollen <[email protected]> wrote:
    Gary Bradshaw wrote:
    Thanks for your response, Rob. I've attached the thread dumps, hopingthat they
    will be easier to read that way. They are from a Windows NT system:Thanks. Are you sure this is the right dump? The server looks
    completely idle in this dump.
    I haven't
    yet found a way to get a thread dump on my Linux system. (I know Ishould say
    "kill -3 <processId>", but each WLS has at least 72 process IDs. MaybeI just
    haven't found the right one yet.)Try ps -ef --forest  .  It'll show you graphically with a little ascii
    art the parent process/thread.
    -- Rob
    Your suggestion to do the update first would work for this particularexample
    since I know I always want to add 1 to the number, but in other similarsituations
    I will want to vary the update based on the values I find in the row.I'm looking
    for a clean way to safely do multi-user updates with JDBC. (For larger,more important
    tables I'm using entity beans).
    - gary
    Rob Woollen <[email protected]> wrote:
    Can you post the thread dumps?
    Also usually people do something like this:
    update mytable set count = count + 1
    select count from mytable
    -- Rob
    Gary Bradshaw wrote:
    I tried to ask this question a few months ago, but I must not havegiven enough
    details
    for anyone to even guess what my problem might be. So I created a
    simple
    example
    to
    demonstrate what's happening.
    I have a cluster of 2 WL servers (7.0) running on Linux. When I callan EJB multiple
    times at once from different threads in a client application, sometimesall the
    threads
    finish in a few milliseconds, but other times at least one of the
    threads
    will
    pause
    for 60 seconds before finishing. There are no error or warning indicatorsin any
    server
    log files. I'm trying to do something very simple: add one to a numberin a database
    table without letting any two clients get the same number.
    I'm using DB2 as my database and COM.ibm.db2.jdbc.app.Driver as mydriver. I have
    a
    JDBC connection pool and a DataSource, which I'm using in a statelesssession
    bean.
    I lock the table in exclusive mode, query the current number, and
    add
    one to it.
    I'm
    using container-managed transactions, so I'm relying on the containerto commit
    the
    update when the method ends. (I tried using a bean-managed transaction,and I
    got the
    same results.)
    For a long time I believed the problem must be with DB2, but when
    I
    put the exact
    same
    code in a JSP, it works just fine. So I know that DB2 can do what
    I'm
    asking it
    to do.
    I also tried it on a Windows NT server, and it behaves exactly thesame. Comparing
    thread dumps of the two servers in the cluster taken during one ofthese 60 second
    wait periods doesn't show any obvious problems: the two servers bothhave exactly
    the
    same threads going, and they all seem pretty reasonable to me.
    Here is the code for my EJB:
    package com.davisvision.cv;
    import java.sql.*;
    import javax.ejb.*;
    public class SimpleBean implements SessionBean {
    SessionContext ctx;
    public void ejbCreate() {
    public void ejbPostCreate() {
    public void ejbRemove() {
    public void ejbActivate() {
    public void ejbPassivate() {
    public void setSessionContext(SessionContext c) {
    ctx = c;
    public int nextNumber() {
    String tableName = "TEST.PROVIDER_SPAWN";
    Connection con = null;
    int num = 0;
    try {
    con = CvDatabase.getConnection();
    con.setAutoCommit(false);
    Statement stmt = con.createStatement();
    stmt.executeUpdate("LOCK TABLE " + tableName + " IN EXCLUSIVEMODE");
    ResultSet rs = stmt.executeQuery("SELECT NEXT_OFFICE_NUM
    FROM "
    + tableName + " WHERE PROVIDER_TYPE = 'DAVIS2'");
    if (rs.next()) {
    num = rs.getInt(1);
    num++;
    int updated = stmt.executeUpdate("UPDATE " + tableName
    + " SET NEXT_OFFICE_NUM = " + num
    + " WHERE PROVIDER_TYPE = 'DAVIS2'");
    catch(Exception e) {
    num = -1;
    Logger.writeDated(Logger.FATAL, "SimpleBean.nextNumber:" + e);
    finally {
    CvDatabase.close(con);
    return num;
    And here is my client application:
    package test;
    import com.davisvision.cv.*;
    import java.util.*;
    import javax.ejb.*;
    import javax.naming.*;
    import javax.rmi.PortableRemoteObject;
    public class TestSimpleBean implements Runnable {
    static InitialContext ctx;
    public int taskNum;
    static void getContext() {
    Properties env = new Properties();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
    env.put(Context.PROVIDER_URL, "t3://weblogictest:7055");
    try {
    ctx = new InitialContext(env);
    catch(NamingException e) {
    System.out.println("Unable to obtain an initial JNDIcontext:
    " + e);
    public void run() {
    System.out.println("Thread " + taskNum + " started.");
    try {
    Object obj = ctx.lookup("ejb-cv-Simple");
    SimpleHome h = (SimpleHome) PortableRemoteObject.narrow(obj,SimpleHome.class);
    SimpleRemote r = h.create();
    int n = r.nextNumber();
    System.out.println("Thread " + taskNum + " next number= " + n);
    catch(Exception e) {
    System.out.println("Error in thread " + taskNum +
    " + e);
    System.out.println("Thread " + taskNum + " ended.");
    public static void main(String[] args) {
    getContext();
    int n = 3;
    TestSimpleBean x = null;
    Thread t = null;
    // start each thread
    for (int i = 0; i < n; i++) {
    x = new TestSimpleBean();
    x.taskNum = i;
    t = new Thread(x);
    t.start();
    System.out.println("" + n + " threads started.");
    My deployment descriptors are as simple as I could make them:
    <?xml version="1.0"?>
    <!DOCTYPE ejb-jar PUBLIC
    "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN"
    "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
    <ejb-jar>
    <enterprise-beans>
    <session>
    <ejb-name>Simple</ejb-name>
    <home>com.davisvision.cv.SimpleHome</home>
    <remote>com.davisvision.cv.SimpleRemote</remote>
    <ejb-class>com.davisvision.cv.SimpleBean</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    </session>
    </enterprise-beans>
    <assembly-descriptor>
    <container-transaction>
    <method>
    <ejb-name>Simple</ejb-name>
    <method-name>
    </method-name>
    </method>
    <trans-attribute>
    Required
    </trans-attribute>
    </container-transaction>
    </assembly-descriptor>
    </ejb-jar>
    <?xml version="1.0"?>
    <!DOCTYPE weblogic-ejb-jar PUBLIC
    "-//BEA Systems, Inc.//DTD WebLogic 6.0.0 EJB//EN"
    "http://www.bea.com/servers/wls600/dtd/weblogic-ejb-jar.dtd" >
    <weblogic-ejb-jar>
    <weblogic-enterprise-bean>
    <ejb-name>Simple</ejb-name>
    <jndi-name>ejb-cv-Simple</jndi-name>
    </weblogic-enterprise-bean>
    </weblogic-ejb-jar>
    This is from part of a production application, so to make sure ourusers aren't
    getting
    random 60-second pauses, I have the production bean deployed on justone server
    in the
    cluster with just one bean in the pool. But I really need to find
    the
    solution
    to this
    problem before development goes much further. Any guesses, sugestions,or conjectures
    would be most welcome.
    - gary------------------------------------------------------------------------
    Full thread dump:
    "Thread-7" daemon prio=5 tid=0x868400 nid=0x1f8 waiting on monitor[0x136ff000..0x136ffdc0]
         at java.lang.Thread.sleep(Native Method)
         at com.davisvision.cv.CvProperties.run(CvProperties.java:153)
         at java.lang.Thread.run(Thread.java:479)
    "ListenThread.Default" prio=5 tid=0x8647d0 nid=0x1f0 runnable [0x136bf000..0x136bfdc0]
         at java.net.PlainSocketImpl.socketAccept(Native Method)
         at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:463)
         at java.net.ServerSocket.implAccept(ServerSocket.java:238)
         at java.net.ServerSocket.accept(ServerSocket.java:217)
         at weblogic.socket.WeblogicServerSocket.accept(WeblogicServerSocket.java:26)
         at weblogic.t3.srvr.ListenThread.run(ListenThread.java:263)
    "ExecuteThread: '0' for queue: 'JMS.TimerTreePool'" daemon prio=5 tid=0x84d220nid=0x1e9 waiting on monitor [0x1312f000..0x1312fdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '3' for queue: 'JMS.TimerClientPool'" daemon prio=5tid=0x84c040 nid=0x1e8 waiting on monitor [0x130ef000..0x130efdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '2' for queue: 'JMS.TimerClientPool'" daemon prio=5tid=0x84c580 nid=0x1e7 waiting on monitor [0x130af000..0x130afdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '1' for queue: 'JMS.TimerClientPool'" daemon prio=5tid=0x84cec0 nid=0x1a1 waiting on monitor [0x1306f000..0x1306fdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '0' for queue: 'JMS.TimerClientPool'" daemon prio=5tid=0x84b370 nid=0x1a0 waiting on monitor [0x1302f000..0x1302fdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "CoreHealthMonitor" daemon prio=5 tid=0x829e30 nid=0x1e6 waiting onmonitor [0x12fef000..0x12fefdc0]
         at java.lang.Thread.sleep(Native Method)
         at weblogic.t3.srvr.CoreHealthMonitorThread.run(CoreHealthMonitorThread.java:114)
    "ExecuteThread: '14' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x820420nid=0x1e5 waiting on monitor [0x12faf000..0x12fafdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '13' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x81f2d0nid=0x1e4 waiting on monitor [0x12f6f000..0x12f6fdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '12' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x81fec0nid=0x1e3 waiting on monitor [0x12f2f000..0x12f2fdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '11' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x81eac0nid=0x1e2 waiting on monitor [0x12eef000..0x12eefdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '10' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x81d6c0nid=0x1e1 waiting on monitor [0x12eaf000..0x12eafdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '9' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x81c2d0nid=0x1e0 waiting on monitor [0x12e6f000..0x12e6fdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '8' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x81cec0nid=0x1df waiting on monitor [0x12e2f000..0x12e2fdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '7' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x81bac0nid=0x1de waiting on monitor [0x12def000..0x12defdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '6' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x81a6c0nid=0x1dd waiting on monitor [0x12daf000..0x12dafdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '5' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x8192d0nid=0x1dc waiting on monitor [0x12d6f000..0x12d6fdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '4' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x819ec0nid=0x1db waiting on monitor [0x12d2f000..0x12d2fdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '3' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x818990nid=0x1da waiting on monitor [0x12cef000..0x12cefdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '2' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x817630nid=0x1d9 waiting on monitor [0x12caf000..0x12cafdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '1' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x816150nid=0x1d8 waiting on monitor [0x12c6f000..0x12c6fdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '0' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x816690nid=0x1d7 waiting on monitor [0x12c2f000..0x12c2fdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '2' for queue: 'weblogic.transaction.AsyncQueue'" daemonprio=5 tid=0x811cc0 nid=0x1d6 waiting on monitor [0x12bef000..0x12befdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '1' for queue: 'weblogic.transaction.AsyncQueue'" daemonprio=5 tid=0x8104c0 nid=0x1d5 waiting on monitor [0x12baf000..0x12bafdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '0' for queue: 'weblogic.transaction.AsyncQueue'" daemonprio=5 tid=0x80f020 nid=0x1d4 waiting on monitor [0x12b6f000..0x12b6fdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "Thread-4" prio=5 tid=0x80e440 nid=0x1d3 waiting on monitor [0x12b2f000..0x12b2fdc0]
         at java.lang.Object.wait(Native Method)
         at java.util.TimerThread.mainLoop(Timer.java:427)
         at java.util.TimerThread.run(Timer.java:380)
    "ExecuteThread: '1' for queue: 'DRS'" daemon prio=5 tid=0x80d700 nid=0x1d2waiting on monitor [0x12aef000..0x12aefdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '0' for queue: 'DRS'" daemon prio=5 tid=0x80b160 nid=0x1d1waiting on monitor [0x12aaf000..0x12aafdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '0' for queue: 'Multicast'" daemon prio=5 tid=0x80a8b0nid=0x1d0 waiting on monitor [0x12a6f000..0x12a6fdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '1' for queue: 'Replication'" daemon prio=5 tid=0x8072f0nid=0x1cf waiting on monitor [0x12a2f000..0x12a2fdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '0' for queue: 'Replication'" daemon prio=5 tid=0x807430nid=0x1c9 waiting on monitor [0x129ef000..0x129efdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "LDAPConnThread 10.1.7.26:7001" daemon prio=5 tid=0x7f56c0 nid=0x1cdrunnable [0x1296f000..0x1296fdc0]
         at java.net.SocketInputStream.socketRead(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:85)
         at java.io.BufferedInputStream.fill(BufferedInputStream.java:181)
         at java.io.BufferedInputStream.read(BufferedInputStream.java:199)
         at netscape.ldap.ber.stream.BERElement.getElement(BERElement.java:101)
         at netscape.ldap.LDAPConnThread.run(LDAPConnThread.java:420)
    "LDAPConnThread 10.1.7.26:7001" daemon prio=5 tid=0x7f35c0 nid=0x1cbrunnable [0x128ef000..0x128efdc0]
         at java.net.SocketInputStream.socketRead(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:85)
         at java.io.BufferedInputStream.fill(BufferedInputStream.java:181)
         at java.io.BufferedInputStream.read(BufferedInputStream.java:199)
         at netscape.ldap.ber.stream.BERElement.getElement(BERElement.java:101)
         at netscape.ldap.LDAPConnThread.run(LDAPConnThread.java:420)
    "LDAPConnThread 10.1.7.26:7001" daemon prio=5 tid=0x7edc70 nid=0x1carunnable [0x128af000..0x128afdc0]
         at java.net.SocketInputStream.socketRead(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:85)
         at java.io.BufferedInputStream.fill(BufferedInputStream.java:181)
         at java.io.BufferedInputStream.read(BufferedInputStream.java:199)
         at netscape.ldap.ber.stream.BERElement.getElement(BERElement.java:101)
         at netscape.ldap.LDAPConnThread.run(LDAPConnThread.java:420)
    "VDE Transaction Processor Thread" prio=2 tid=0x7e21c0 nid=0x1c5 waitingon monitor [0x1282f000..0x1282fdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at com.octetstring.vde.backend.standard.TransactionProcessor.waitChange(TransactionProcessor.java:306)
         at com.octetstring.vde.backend.standard.TransactionProcessor.run(TransactionProcessor.java:192)
    "ExecuteThread: '1' for queue: '__weblogic_admin_rmi_queue'" daemonprio=5 tid=0x7a7020 nid=0x1c4 waiting on monitor [0x127df000..0x127dfdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '0' for queue: '__weblogic_admin_rmi_queue'" daemonprio=5 tid=0x7d7750 nid=0x1c3 waiting on monitor [0x1279f000..0x1279fdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '1' for queue: '__weblogic_admin_html_queue'" daemonprio=5 tid=0x7c26b0 nid=0x1c2 waiting on monitor [0x1273f000..0x1273fdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '0' for queue: '__weblogic_admin_html_queue'" daemonprio=5 tid=0x7c2bf0 nid=0x1c1 waiting on monitor [0x126ff000..0x126ffdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "TimeEventGenerator" daemon prio=5 tid=0x7c00d0 nid=0x1c0 waiting onmonitor [0x126bf000..0x126bfdc0]
         at java.lang.Object.wait(Native Method)
         at weblogic.time.common.internal.TimeTable.snooze(TimeTable.java:272)
         at weblogic.time.common.internal.TimeEventGenerator.run(TimeEventGenerator.java:139)
         at java.lang.Thread.run(Thread.java:479)
    "ExecuteThread: '1' for queue: '_weblogic_dgc_queue'" daemon prio=5tid=0x7bfac0 nid=0x1bf waiting on monitor [0x1267f000..0x1267fdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '0' for queue: '_weblogic_dgc_queue'" daemon prio=5tid=0x7be5c0 nid=0x1be waiting on monitor [0x1263f000..0x1263fdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "HighPriority TimeEventGenerator" daemon prio=9 tid=0x7bee10 nid=0x1bdwaiting on monitor [0x125ff000..0x125ffdc0]
         at java.lang.Object.wait(Native Method)
         at weblogic.time.common.internal.TimeTable.snooze(TimeTable.java:272)
         at weblogic.time.common.internal.TimeEventGenerator.run(TimeEventGenerator.java:139)
         at java.lang.Thread.run(Thread.java:479)
    "SpinnerRandomSource" daemon prio=5 tid=0x7bc270 nid=0x1bc waitingon monitor [0x125bf000..0x125bfdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.security.SpinnerRandomBitsSource.run(SpinnerRandomBitsSource.java:60)
         at java.lang.Thread.run(Thread.java:479)
    "ExecuteThread: '14' for queue: 'default'" daemon prio=5 tid=0x7b9050nid=0x1bb runnable [0x1257f000..0x1257fdc0]
         at weblogic.socket.NTSocketMuxer.getNextSocket(Native Method)
         at weblogic.socket.NTSocketMuxer.processSockets(NTSocketMuxer.java:534)
         at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:23)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189)
    "ExecuteThread: '13' for queue: 'default'" daemon prio=5 tid=0x7b8050nid=0x1ba runnable [0x1253f000..0x1253fdc0]
         at weblogic.socket.NTSocketMuxer.getNextSocket(Native Method)
         at weblogic.socket.NTSocketMuxer.processSockets(NTSocketMuxer.java:534)
         at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:23)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189)
    "ExecuteThread: '12' for queue: 'default'" daemon prio=5 tid=0x7b8840nid=0x1b9 runnable [0x124ff000..0x124ffdc0]
         at java.net.PlainDatagramSocketImpl.receive(Native Method)
         at java.net.DatagramSocket.receive(DatagramSocket.java:387)
         at weblogic.cluster.FragmentSocket.receive(FragmentSocket.java:158)
         at weblogic.cluster.MulticastManager.execute(MulticastManager.java:336)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189)
    "ExecuteThread: '11' for queue: 'default'" daemon prio=5 tid=0x7b7360nid=0x1b8 waiting on monitor [0x124bf000..0x124bfdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '10' for queue: 'default'" daemon prio=5 tid=0x7b7ec0nid=0x1b7 waiting on monitor [0x1247f000..0x1247fdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '9' for queue: 'default'" daemon prio=5 tid=0x7b6ac0nid=0x1b6 waiting on monitor [0x1243f000..0x1243fdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '8' for queue: 'default'" daemon prio=5 tid=0x7b56c0nid=0x1b5 waiting on monitor [0x123ff000..0x123ffdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '7' for queue: 'default'" daemon prio=5 tid=0x7b4360nid=0x1b4 waiting on monitor [0x123bf000..0x123bfdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:146)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
    "ExecuteThread: '6' for queue: 'default'" daemon prio=5 tid=0x7b4ec0nid=0x1b3 waiting on monitor [0x1237f000..0x1237fdc0]
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:415)
         at weblogic.kernel.ExecuteThread.

Maybe you are looking for