ClassNotFoundException on cluster when calling Stateless EJB

Using Weblogic 10.3.2 on Linux
and Oracle HTTP Server as the loadbalancer
I have an applicaiton that works if deployed to a standalone server.
When testing the application on a cluster with two nodes I get a ClassNotFoundException.
This is occuring on a call to a class that is called from a class that is called from an EJB.
So the class not found "classC" is called from "classB" with is used by "EJB-A". All are part of the same ejb jar.
The class not found (classC) is in the same package as "classB" in the jar.
The error is with org.apache.commons.digester.ObjectCreateRule not finding the class.
Any thoughts or ideas what could be going wrong? Is this a cluster setup issue?
Here is the error:
####<Aug 3, 2010 3:34:54 PM CDT> <Error> <org.apache.commons.digester.Digester> <localhost.localdomain> <Node2Server> <[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <BEA1-0000480BF0F8B173A146> <> <1280867694379> <BEA-000000> <Begin event threw exception
java.lang.ClassNotFoundException: com.myco.framework.server.MyConfig
     at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
     at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
     at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
     at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
     at org.apache.commons.digester.ObjectCreateRule.begin(ObjectCreateRule.java:205)
     at org.apache.commons.digester.Rule.begin(Rule.java:175)
     at org.apache.commons.digester.Digester.startElement(Digester.java:1453)
     at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
     at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(Unknown Source)
     at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
     at org.apache.xerces.impl.XMLDocumentScannerImpl$ContentDispatcher.scanRootElementHook(Unknown Source)
     at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
     at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
     at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
     at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
     at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
     at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
     at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
     at org.apache.commons.digester.Digester.parse(Digester.java:1745)
     at com.myco.framework.common.util.XmlUtil.parse(Unknown Source)
at com.myco.framework.server.ServerContext.initServerActionMap(Unknown Source)
     at com.myco.framework.server.ServerContext.init(Unknown Source)
     at com.myco.framework.server.ServerContext.<init>(Unknown Source)
     at com.myco.framework.server.ServerContext.getInstance(Unknown Source)
     at com.myco.framework.server.ejb.MyStatelessEJBBean.initServerActionMap(Unknown Source)
     at com.myco.framework.server.ejb.MyStatelessEJBBean.doServerAction(Unknown Source)
     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:597)
     at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
     at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
     at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
     at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
     at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
     at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
     at com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:37)
     at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:55)
     at com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:50)
     at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
     at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
     at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
     at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
     at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
     at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
     at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
     at $Proxy160.doServerAction(Unknown Source)
     at com.myco.framework.server.ejb.MyStatelessEJBBean_vqyexu_MyStatelessEJBBeanImpl.doServerAction(MyStatelessEJBBean_vqyexu_MyStatelessEJBBeanImpl.java:142)
Edited by: ora_R_n_R on Aug 4, 2010 2:15 PM
Edited by: ora_R_n_R on Aug 4, 2010 2:17 PM
Edited by: ora_R_n_R on Aug 4, 2010 2:31 PM

How are you deploying your application as an EAR, which has been targeted to the cluster?

Similar Messages

  • NO_PERMISSION Exception when calling secured EJB-methods

    In WL6.1, I have an Ejb with secured methods. The (Swing) client application accesses the Ejb through rmi-iiop using the JDK1.3.1 Orb.
    Unfortunately, it seems that the caller identity (which was supplied in the InitialContext lookup) is not propagated
    to the server: any call to a secured method
    fails with a CORBA NO_PERMISSION Exception.
    Non secured methods work fine.
    Using the t3 protocol the program also works fine, but that would require
    the 25Mb weblogic.jar on all clients,
    which is unattainable for us.
    Any ideas how this situation can be corrected?
    -Allard Siemelink

    I am still getting the NO_PERMISSION Exception when using "weblogic.jndi.WLInitialContextFactory".
    We use Sun's JRE, version 1.3.1_01.
    Am I forgetting something?
    My code is as follows:
    InitialContext context = null;
    try {
    Hashtable ht = new Hashtable();
    ht.put(InitialContext.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
    ht.put(InitialContext.PROVIDER_URL, "iiop://localhost:80");
    ht.put(InitialContext.SECURITY_PRINCIPAL, "system");
    ht.put(InitialContext.SECURITY_CREDENTIALS, "system_password");
    context = new InitialContext(ht);
    Object objHome = context.lookup(EJB_NAME);
    MyHome myHome = (MyHome)PortableRemoteObject.narrow(objHome, MyHome.class);
    MyRemote myRemote = myHome.create();
    //NEXT LINE Crashes when method is secured:
    myRemote.securedMethod();
    finally {
    if (context!=null) context.close();
    Andy Piper <[email protected]> wrote:
    Allard Siemelink <[email protected]> writes:
    In WL6.1, I have an Ejb with secured methods. The (Swing) client applicationaccesses the Ejb through rmi-iiop using the JDK1.3.1 Orb.
    Unfortunately, it seems that the caller identity (which was suppliedin the InitialContext lookup) is not propagated
    to the server: any call to a secured method
    fails with a CORBA NO_PERMISSION Exception.Make sure you are using WLInitialContextFactory and not
    CNCtxFactory. Only the former will give you security.
    andy

  • Error when calling remote EJB from my application

    hi
    I am getting the following error when i am trying to call a remote EJB from my application.
    Can any help me out regarding this issue
    javax.naming.ConfigurationException: COS Name Service not registered with ORB under the name 'NameService'. Root exception is org.omg.CORBA.ORBPackage.InvalidName: NameService:org.omg.CORBA.COMM_FAILURE: purge_calls:1500 reason=1 state=5 vmcid: IBM minor code: 306 completed: Maybe
         at com.ibm.rmi.corba.InitialReferenceClient.resolve_initial_references(InitialReferenceClient.java:218)
         at com.ibm.rmi.corba.ORB.resolve_initial_references(ORB.java:4428)
         at com.ibm.rmi.iiop.ORB.resolve_initial_references(ORB.java:654)
         at com.ibm.CORBA.iiop.ORB.resolve_initial_references(ORB.java:3363)
         at com.sun.jndi.cosnaming.CNCtx.setOrbAndRootContext(CNCtx.java:387)
         at com.sun.jndi.cosnaming.CNCtx.initUsingIiopUrl(CNCtx.java:330)
         at com.sun.jndi.cosnaming.CNCtx.initUsingUrl(CNCtx.java:285)
         at com.sun.jndi.cosnaming.CNCtx.initOrbAndRootContext(CNCtx.java:236)
         at com.sun.jndi.cosnaming.CNCtx.<init>(CNCtx.java:84)
         at com.sun.jndi.cosnaming.CNCtxFactory.getInitialContext(CNCtxFactory.java:50)
         at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:675)
         at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:257)
         at javax.naming.InitialContext.init(InitialContext.java:233)
         at javax.naming.InitialContext.<init>(InitialContext.java:209)
         at com.ibm._jsp._invoke._jspService(_invoke.java:89)
         at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:91)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
         at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1572)
         at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:762)
         at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:121)
         at com.ibm.ws.jsp.webcontainerext.JSPExtensionServletWrapper.handleRequest(JSPExtensionServletWrapper.java:204)
         at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3071)
         at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:236)
         at com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:210)
         at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1958)
         at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:109)
         at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:472)
         at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:411)
         at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:288)
         at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminaters(NewConnectionInitialReadCallback.java:207)
         at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:109)
         at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:566)
         at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:619)
         at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:952)
         at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1039)
         at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1471)
    Caused by: org.omg.CORBA.COMM_FAILURE: purge_calls:1500 reason=1 state=5 vmcid: IBM minor code: 306 completed: Maybe
         at com.ibm.rmi.iiop.Connection.purge_calls(Connection.java:1499)
         at com.ibm.rmi.iiop.Connection.doReaderWorkOnce(Connection.java:2702)
         at com.ibm.rmi.transport.ReaderThread.run(ReaderPoolImpl.java:137)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.ibm.rmi.corba.InitialReferenceClient.resolve_initial_references(InitialReferenceClient.java:218)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.ibm.rmi.corba.ORB.resolve_initial_references(ORB.java:4428)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.ibm.rmi.iiop.ORB.resolve_initial_references(ORB.java:654)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.ibm.CORBA.iiop.ORB.resolve_initial_references(ORB.java:3363)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.sun.jndi.cosnaming.CNCtx.setOrbAndRootContext(CNCtx.java:387)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.sun.jndi.cosnaming.CNCtx.initUsingIiopUrl(CNCtx.java:330)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.sun.jndi.cosnaming.CNCtx.initUsingUrl(CNCtx.java:285)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.sun.jndi.cosnaming.CNCtx.initOrbAndRootContext(CNCtx.java:236)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.sun.jndi.cosnaming.CNCtx.<init>(CNCtx.java:84)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.sun.jndi.cosnaming.CNCtxFactory.getInitialContext(CNCtxFactory.java:50)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:675)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:257)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at javax.naming.InitialContext.init(InitialContext.java:233)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at javax.naming.InitialContext.<init>(InitialContext.java:209)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.ibm._jsp._invoke._jspService(_invoke.java:89)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:91)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1572)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:762)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:121)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.ibm.ws.jsp.webcontainerext.JSPExtensionServletWrapper.handleRequest(JSPExtensionServletWrapper.java:204)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3071)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:236)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:210)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1958)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:109)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:472)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:411)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:288)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminaters(NewConnectionInitialReadCallback.java:207)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:109)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:566)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:619)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:952)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1039)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1471)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R Caused by: org.omg.CORBA.COMM_FAILURE: purge_calls:1500 reason=1 state=5 vmcid: IBM minor code: 306 completed: Maybe
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.ibm.rmi.iiop.Connection.purge_calls(Connection.java:1499)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.ibm.rmi.iiop.Connection.doReaderWorkOnce(Connection.java:2702)
    [4/26/07 19:35:11:727 IST] 00000053 SystemErr R      at com.ibm.rmi.transport.ReaderThread.run(ReaderPoolImpl.java:137)
    [4/26/07 19:35:11:727 IST] 00000054 SystemErr R javax.naming.ConfigurationException: COS Name Service not registered with ORB under the name 'NameService'. Root exception is org.omg.CORBA.ORBPackage.InvalidName: NameService:org.omg.CORBA.COMM_FAILURE: purge_calls:1500 reason=1 state=5 vmcid: IBM minor code: 306 completed: Maybe
         at com.ibm.rmi.corba.InitialReferenceClient.resolve_initial_references(InitialReferenceClient.java:218)
         at com.ibm.rmi.corba.ORB.resolve_initial_references(ORB.java:4428)
         at com.ibm.rmi.iiop.ORB.resolve_initial_references(ORB.java:654)
         at com.ibm.CORBA.iiop.ORB.resolve_initial_references(ORB.java:3363)
         at com.sun.jndi.cosnaming.CNCtx.setOrbAndRootContext(CNCtx.java:387)
         at com.sun.jndi.cosnaming.CNCtx.initUsingIiopUrl(CNCtx.java:330)
         at com.sun.jndi.cosnaming.CNCtx.initUsingUrl(CNCtx.java:285)
         at com.sun.jndi.cosnaming.CNCtx.initOrbAndRootContext(CNCtx.java:236)
         at com.sun.jndi.cosnaming.CNCtx.<init>(CNCtx.java:84)
         at com.sun.jndi.cosnaming.CNCtxFactory.getInitialContext(CNCtxFactory.java:50)
         at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:675)
         at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:257)
         at javax.naming.InitialContext.init(InitialContext.java:233)
         at javax.naming.InitialContext.<init>(InitialContext.java:209)
         at com.ibm._jsp._invoke._jspService(_invoke.java:89)
         at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:91)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
         at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1572)
         at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:762)
         at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:121)
         at com.ibm.ws.jsp.webcontainerext.JSPExtensionServletWrapper.handleRequest(JSPExtensionServletWrapper.java:204)
         at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3071)
         at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:236)
         at com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:210)
         at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1958)
         at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:109)
         at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:472)
         at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:411)
         at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:288)
         at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminaters(NewConnectionInitialReadCallback.java:207)
         at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:109)
         at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:566)
         at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:619)
         at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:952)
         at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1039)
         at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1471)
    Caused by: org.omg.CORBA.COMM_FAILURE: purge_calls:1500 reason=1 state=5 vmcid: IBM minor code: 306 completed: Maybe
         at com.ibm.rmi.iiop.Connection.purge_calls(Connection.java:1499)
         at com.ibm.rmi.iiop.Connection.doReaderWorkOnce(Connection.java:2702)
         at com.ibm.rmi.transport.ReaderThread.run(ReaderPoolImpl.java:137)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.ibm.rmi.corba.InitialReferenceClient.resolve_initial_references(InitialReferenceClient.java:218)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.ibm.rmi.corba.ORB.resolve_initial_references(ORB.java:4428)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.ibm.rmi.iiop.ORB.resolve_initial_references(ORB.java:654)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.ibm.CORBA.iiop.ORB.resolve_initial_references(ORB.java:3363)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.sun.jndi.cosnaming.CNCtx.setOrbAndRootContext(CNCtx.java:387)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.sun.jndi.cosnaming.CNCtx.initUsingIiopUrl(CNCtx.java:330)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.sun.jndi.cosnaming.CNCtx.initUsingUrl(CNCtx.java:285)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.sun.jndi.cosnaming.CNCtx.initOrbAndRootContext(CNCtx.java:236)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.sun.jndi.cosnaming.CNCtx.<init>(CNCtx.java:84)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.sun.jndi.cosnaming.CNCtxFactory.getInitialContext(CNCtxFactory.java:50)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:675)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:257)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at javax.naming.InitialContext.init(InitialContext.java:233)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at javax.naming.InitialContext.<init>(InitialContext.java:209)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.ibm._jsp._invoke._jspService(_invoke.java:89)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:91)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1572)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:762)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:121)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.ibm.ws.jsp.webcontainerext.JSPExtensionServletWrapper.handleRequest(JSPExtensionServletWrapper.java:204)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3071)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:236)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:210)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1958)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:109)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:472)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:411)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:288)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminaters(NewConnectionInitialReadCallback.java:207)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:109)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:566)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:619)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:952)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1039)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1471)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R Caused by: org.omg.CORBA.COMM_FAILURE: purge_calls:1500 reason=1 state=5 vmcid: IBM minor code: 306 completed: Maybe
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.ibm.rmi.iiop.Connection.purge_calls(Connection.java:1499)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.ibm.rmi.iiop.Connection.doReaderWorkOnce(Connection.java:2702)
    [4/26/07 19:35:11:742 IST] 00000054 SystemErr R      at com.ibm.rmi.transport.ReaderThread.run(ReaderPoolImpl.java:137)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R javax.naming.ConfigurationException: COS Name Service not registered with ORB under the name 'NameService'. Root exception is org.omg.CORBA.ORBPackage.InvalidName: NameService:org.omg.CORBA.COMM_FAILURE: purge_calls:1500 reason=1 state=5 vmcid: IBM minor code: 306 completed: Maybe
         at com.ibm.rmi.corba.InitialReferenceClient.resolve_initial_references(InitialReferenceClient.java:218)
         at com.ibm.rmi.corba.ORB.resolve_initial_references(ORB.java:4428)
         at com.ibm.rmi.iiop.ORB.resolve_initial_references(ORB.java:654)
         at com.ibm.CORBA.iiop.ORB.resolve_initial_references(ORB.java:3363)
         at com.sun.jndi.cosnaming.CNCtx.setOrbAndRootContext(CNCtx.java:387)
         at com.sun.jndi.cosnaming.CNCtx.initUsingIiopUrl(CNCtx.java:330)
         at com.sun.jndi.cosnaming.CNCtx.initUsingUrl(CNCtx.java:285)
         at com.sun.jndi.cosnaming.CNCtx.initOrbAndRootContext(CNCtx.java:236)
         at com.sun.jndi.cosnaming.CNCtx.<init>(CNCtx.java:84)
         at com.sun.jndi.cosnaming.CNCtxFactory.getInitialContext(CNCtxFactory.java:50)
         at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:675)
         at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:257)
         at javax.naming.InitialContext.init(InitialContext.java:233)
         at javax.naming.InitialContext.<init>(InitialContext.java:209)
         at com.ibm._jsp._invoke._jspService(_invoke.java:89)
         at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:91)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
         at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1572)
         at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:762)
         at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:121)
         at com.ibm.ws.jsp.webcontainerext.JSPExtensionServletWrapper.handleRequest(JSPExtensionServletWrapper.java:204)
         at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3071)
         at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:236)
         at com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:210)
         at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1958)
         at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:109)
         at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:472)
         at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:411)
         at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:288)
         at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminaters(NewConnectionInitialReadCallback.java:207)
         at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:109)
         at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:566)
         at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:619)
         at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:952)
         at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1039)
         at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1471)
    Caused by: org.omg.CORBA.COMM_FAILURE: purge_calls:1500 reason=1 state=5 vmcid: IBM minor code: 306 completed: Maybe
         at com.ibm.rmi.iiop.Connection.purge_calls(Connection.java:1499)
         at com.ibm.rmi.iiop.Connection.doReaderWorkOnce(Connection.java:2702)
         at com.ibm.rmi.transport.ReaderThread.run(ReaderPoolImpl.java:137)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.ibm.rmi.corba.InitialReferenceClient.resolve_initial_references(InitialReferenceClient.java:218)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.ibm.rmi.corba.ORB.resolve_initial_references(ORB.java:4428)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.ibm.rmi.iiop.ORB.resolve_initial_references(ORB.java:654)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.ibm.CORBA.iiop.ORB.resolve_initial_references(ORB.java:3363)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.sun.jndi.cosnaming.CNCtx.setOrbAndRootContext(CNCtx.java:387)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.sun.jndi.cosnaming.CNCtx.initUsingIiopUrl(CNCtx.java:330)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.sun.jndi.cosnaming.CNCtx.initUsingUrl(CNCtx.java:285)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.sun.jndi.cosnaming.CNCtx.initOrbAndRootContext(CNCtx.java:236)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.sun.jndi.cosnaming.CNCtx.<init>(CNCtx.java:84)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.sun.jndi.cosnaming.CNCtxFactory.getInitialContext(CNCtxFactory.java:50)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:675)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:257)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at javax.naming.InitialContext.init(InitialContext.java:233)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at javax.naming.InitialContext.<init>(InitialContext.java:209)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.ibm._jsp._invoke._jspService(_invoke.java:89)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:91)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1572)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:762)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:121)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.ibm.ws.jsp.webcontainerext.JSPExtensionServletWrapper.handleRequest(JSPExtensionServletWrapper.java:204)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3071)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:236)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:210)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1958)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:109)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:472)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:411)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:288)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminaters(NewConnectionInitialReadCallback.java:207)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:109)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:566)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:619)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:952)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1039)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1471)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R Caused by: org.omg.CORBA.COMM_FAILURE: purge_calls:1500 reason=1 state=5 vmcid: IBM minor code: 306 completed: Maybe
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.ibm.rmi.iiop.Connection.purge_calls(Connection.java:1499)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.ibm.rmi.iiop.Connection.doReaderWorkOnce(Connection.java:2702)
    [4/26/07 19:37:22:758 IST] 00000052 SystemErr R      at com.ibm.rmi.transport.ReaderThread.run(ReaderPoolImpl.java:137)
    [4/26/07 19:37:36:117 IST] 00000056 SystemErr R javax.naming.ConfigurationException: COS Name Service not registered with ORB under the name 'NameService'. Root exception is org.omg.CORBA.ORBPackage.InvalidName: NameService:org.omg.CORBA.COMM_FAILURE: purge_calls:1500 reason=1 state=5 vmcid: IBM minor code: 306 completed: Maybe
         at com.ibm.rmi.corba.InitialReferenceClient.resolve_initial_references(InitialReferenceClient.java:218)
         at com.ibm.rmi.corba.ORB.resolve_initial_references(ORB.java:4428)
         at com.ibm.rmi.iiop.ORB.resolve_initial_references(ORB.java:654)
         at com.ibm.CORBA.iiop.ORB.resolve_initial_references(ORB.java:3363)
         at com.sun.jndi.cosnaming.CNCtx.setOrbAndRootContext(CNCtx.java:387)
         at com.sun.jndi.cosnaming.CNCtx.initUsingIiopUrl(CNCtx.java:330)
         at com.sun.jndi.cosnaming.CNCtx.initUsingUrl(CNCtx.java:285)
         at com.sun.jndi.cosnaming.CNCtx.initOrbAndRootContext(CNCtx.java:236)
         at com.sun.jndi.cosnaming.CNCtx.<init>(CNCtx.java:84)
         at com.sun.jndi.cosnaming.CNCtxFactory.getInitialContext(CNCtxFactory.java:50)
         at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:675)
         at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:257)
         at javax.naming.InitialContext.init(InitialContext.java:233)
         at javax.naming.InitialContext.<init>(InitialContext.java:209)
         at com.ibm._jsp._invoke._jspService(_invoke.java:89)
         at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:91)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
         at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1572)
         at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:762)
         at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:121)
         at com.ibm.ws.jsp.webcontainerext.JSPExtensionServletWrapper.handleRequest(JSPExtensionServletWrapper.java:204)
         at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3071)
         at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:236)
         at com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:210)
         at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1958)
         at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:109)
         at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:472)
         at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:411)
         at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:288)
         at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminaters(NewConnectionInitialReadCallback.java:207)
         at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:109)
         at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:566)
         at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:619)
         at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:952)
         at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1039)
         at com.ibm.ws.util.Th

    The procedure apex_cdc.enable_table_capture i created myself with no authid mentioned explicitly, so it uses definer rights, by default.
    BUt this procedure is simply a wrapper for sys.dbms_cdc_publish.create_change_table.
    When I look on the security model for this sys.dbms_cdc_publish, i see it runs under invoker rights. (http://www.psoug.org/reference/dbms_cdc_publish.html).
    The code is like this:
    CREATE OR REPLACE PROCEDURE enable_table_capture
              i_owner               IN VARCHAR2,
              i_change_table_name     IN VARCHAR2,
              i_change_set_name     IN VARCHAR2,
              i_change_source          IN VARCHAR2,
              i_source_schema          IN VARCHAR2,
              i_source_table          IN VARCHAR2,
              i_column_type_list     IN VARCHAR2
         IS
         BEGIN
              EXECUTE IMMEDIATE 'alter session set REMOTE_DEPENDENCIES_MODE=SIGNATURE';
              EXECUTE IMMEDIATE 'begin add_log@orcl01(i_tableName => ''G''); end;';
    sys.DBMS_CDC_PUBLISH.CREATE_CHANGE_TABLE(
    owner => i_owner,
    change_table_name => i_change_table_name,
    change_set_name => i_change_set_name,
    source_schema => i_source_schema,
    source_table => i_source_table,
    column_type_list => i_column_type_list,
    capture_values => 'both',
    rs_id => 'y',
    row_id => 'n',
    user_id => 'n',
    timestamp => 'y',
    object_id => 'n',
    source_colmap => 'n',
    target_colmap => 'y',
    options_string => NULL);
    END enable_table_capture;

  • A surprising exception when call the EJB

    OS:Windows-2000
    J2EE-Server:J2sdkee1.2.1
    Database:SQLServer-2000
    The CMP-bean---UserEJB has been deployed successfully.
    Main client program:
    UserHome userHome=(UserHome)PortableRemoteObject.narrow(objectRef,ejb.UserHome.class);
    User user=userHome.create(userid,password,name);
    When running the client program,exception occured like this:---
    java.rmi.ServerException: RemoteException occurred in server thread; nested exce
    ption is:
    java.rmi.RemoteException: Transaction aborted (possibly due to transacti
    on time out).; nested exception is:
    javax.transaction.RollbackException
    java.rmi.RemoteException: Transaction aborted (possibly due to transaction time
    out).; nested exception is:
    javax.transaction.RollbackException
    javax.transaction.RollbackException
    <<no stack trace available>>
    But a new data-row has been inserted into the table successfully.
    What on earth caused that? And how to solve this problem?
    Any reply is welcome.Thanks!

    I have only a partial solution (if you find it all I'll be happy to know myself...)
    I had the same problem. It occurs that the problem is related to the definitions of transactions attributes in the table of the transaction tab. go to this tab and change the attribute from "required" to "supported" (I assume you have "required" and it should not be) in the method which causes the exception.
    hope this helped.

  • TimedOutException exception when call an EJB in an other container

    Hi there,
    I am encountering a strange problem after I moved from WLS5.1 to
    WLS6.1SP2.
    There are two 6.1 app servers and two stateless session beans involved
    in our problem. The scenario is the following:
    EJB1 has RequiresNew on all methods as TRX attribute
    EJB2 has NotSupported on all methods as TRX attribute
    client calls method_1 on EJB1 in Server1
    EBJ1 method_1 calls method_2 on EJB2 in Server2
    EJB1 method returns
    The client does not return from his call to EJB1 until a
    'weblogic.transaction.internal.TimedOutException' occurs on the
    server. In the debugger I can see that method_1 in EJB1 and method_2
    in EJB_2 actually return successfully.
    This behaviour can easily be fixed by setting the TRX attributes to
    NotSupported on EJB1 as well, but I think this is not correct.
    Any ideas?
    Thanks
    Juerg

    Hi Li,
    If you would like to keep the generated source you start your oc4j using this command.
    java -jar -DKeepWrapperCode=true oc4j.jar
    And the null pointer might not have occured from the the create method, but i feel the home object is null in the thread which is calling this method.
    --Shrini                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Error when calling an EJB from a web sevice

    Hi all,
    I am getting the following error while trying to the lookup for my session bean
    com.sap.engine.services.jndi.persistent.exceptions.NameNotFoundException: Path to object does not exist at java:comp, the whole lookup name is java:comp/env/ejb/MyProcessorBean
    here's a part of my code:
    String WebserviceFunction()
    Context ctx = new InitialContext();
    BiasProcessorLocalHome orderHome =(BiasProcessorLocalHome)ctx.lookup("java:comp/env/ejb/MyProcessorBean");
    I am using NWDS Version: 7.0.09
    SAP NetWeaver 2004s.
    I did find some threads related to it but none has been answered or weren't
    that helpful in solving my problem.
    Thanks
    null

    Hi,
    What is the implementation of your Web service? If it's another EJB then you have to define an ejb-local-ref in the deployment descriptor for that other EJB, like this:
    <ejb-local-ref>
        <ejb-ref-name>ejb/MyProcessorBean</ejb-ref-name>
        <ejb-ref-type>Session</ejb-ref-type>
        <local-home>your.package.BiasProcessorLocalHome</local-home>
        <local>your.package.BiasProcessorLocal</local>
    </ejb-local-ref>
    If it's not a J2EE component, there is no java:comp environment naming context (ENC) available. In this case you can look up the EJB local home from the "localejbs/" context, e.g. "localejbs/provider.name/YourAppName/YourEjbName". By default the provider name is "sap.com".
    For more information please refer to <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/java/accessing%20ejb%20applications%20using%20jndi.pdf">this article</a>.
    HTH!
    -- Vladimir

  • RollbackException using UserTransaction when calling EJB in separate server

    I'm using WL 6.1 on Solaris and am calling a stateless session EJB that
              is running in a separate server. I'm looking up the remote EJB using
              JNDI and calling through it's home interface. This works fine but if
              the client code begins a UserTransaction, then calls the EJB that's in
              the separate server, and then calls commit on the transaction, I get the
              following:
              weblogic.transaction.RollbackException: Aborting prepare because some
              resources could not be assigned - with nested exception:
              [javax.transaction.SystemException: Aborting prepare because some
              resources could not be assigned]
              The code that works looks like:
              rgData =
              HomeHolder.ROUTING_GUIDE_MGR_HOME.create().getResourceOptions(qd);
              whereas the code that fails is:
              UserTransaction transaction = new UserTransaction();
              transaction.begin();
              rgData =
              HomeHolder.ROUTING_GUIDE_MGR_HOME.create().getResourceOptions(qd);
              transaction.commit();
              If I put the EJB in the same server as the client, I don't get the
              exception so it seems to be related to running it in the separate server
              and using the UserTransaction. The deployment descriptor of the EJB
              states that it "Supports" transactions.
              Any ideas?
              Thanks,
              John
              

    Yes, actually we are using:
              AppServerTransaction transaction = new AppServerTransaction();
              which is a wrapper which does what you say:
              Context ctx = new InitialContext(...); // connect to another WLS
              UserTransaction tx = (UserTransaction)ctx.lookup("java:comp/UserTransaction");
              and our HomeHolder does what you say as well:
              Homexxx home = ctx.lookup(...);
              Any ideas why surrounding the EJB call by a UserTransaction causes a problem when
              committing?
              Thanks,
              John
              Dimitri Rakitine wrote:
              > John Hanna <[email protected]> wrote:
              > > I'm using WL 6.1 on Solaris and am calling a stateless session EJB that
              > > is running in a separate server. I'm looking up the remote EJB using
              > > JNDI and calling through it's home interface. This works fine but if
              > > the client code begins a UserTransaction, then calls the EJB that's in
              > > the separate server, and then calls commit on the transaction, I get the
              > > following:
              >
              > > weblogic.transaction.RollbackException: Aborting prepare because some
              > > resources could not be assigned - with nested exception:
              > > [javax.transaction.SystemException: Aborting prepare because some
              > > resources could not be assigned]
              >
              > > The code that works looks like:
              >
              > > rgData =
              > > HomeHolder.ROUTING_GUIDE_MGR_HOME.create().getResourceOptions(qd);
              >
              > > whereas the code that fails is:
              >
              > > UserTransaction transaction = new UserTransaction();
              >
              > It's an interface, how did this work? Assuming that you do not want
              > distributed tx, does this work:
              >
              > Context ctx = new InitialContext(...); // connect to another WLS
              > UserTransaction tx = (UserTransaction)ctx.lookup("java:comp/UserTransaction");
              > Homexxx home = ctx.lookup(...);
              > tx.begin();
              > home.create().getResourceOptions(qd);
              > tx.commit();
              >
              > ?
              >
              > > transaction.begin();
              > > rgData =
              > > HomeHolder.ROUTING_GUIDE_MGR_HOME.create().getResourceOptions(qd);
              > > transaction.commit();
              >
              > > If I put the EJB in the same server as the client, I don't get the
              > > exception so it seems to be related to running it in the separate server
              > > and using the UserTransaction. The deployment descriptor of the EJB
              > > states that it "Supports" transactions.
              >
              > > Any ideas?
              >
              > > Thanks,
              >
              > > John
              >
              > --
              > Dimitri
              

  • EJBUtils.cloneObject(...) takes long time when calling EJB's

    hi,
    using OC4J 10.1.3 in windows XP.
    I have a servlet that calls a local stateless EJB (UserManagerBean) (2.1 version) and the EJB calls a second local stateless EJB (UserPersistorBean). The last one does a JDBC query and the result is returned to the servlet. The servlet call takes about 19.5 seconds (in my PC) to execute. Using a profiler, I have detected that EJBUtils.cloneObject(...) is called two times (one for each EJB) and it takes about 18 seconds (every time the servlet call is done, not only the first time !). The JDBC calls it only takes 1.171 seconds.
    here is the trace call showed in the profiler: (time is breaked down in each call)
    -servlet call time to execute= 19.500
    --UserManager_StatelessSessionBeanWrapper18.searchAll(Query)  time to execute= 19.500
    ----com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(MethodState, Object[], ThreadState) time to execute= 10.750
    ------com.nte.anthema.security.UserManagerBean.searchAll(Query) time to execute= 10.750
    --------UserPersistor_StatelessSessionBeanWrapper16.searchAll(Query) time to execute= 10.750
    ----------com.evermind.server.ejb.EJBUtils.cloneObject(Object, AbstractEJBHome) time to execute= 9.578 (related with UserPersistorBean)
    ----------com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(MethodState, Object[], ThreadState) time to execute= 1.171
    -------------com.nte.anthema.security.persistence.UserPersistorBean.searchAll(Query) time to execute= 1.171
    ----com.evermind.server.ejb.EJBUtils.cloneObject(Object, AbstractEJBHome) time to execute= 8.750 (related with UserManagerBean)
    Any idea why EJBUtils.cloneObject is executed every time these EJB are called ? I have other EJB's and EJBUtils.cloneObject(...) is not executed when that EJB's aree called.
    Any help ?
    Thanks !
    pep.

    It's loading the code insight. Since you have such a large number of objects you may want to turn this off.
    sqldeveloper -J-Dsdev.insight=false
    -kris

  • Call stateless session bean EJB 2.0 from Webdynpro Java UI

    Hello,
    Can someone please tell me asto how to call a stateless session bean EJB 2.0 from Webdynpro Java UI?
    The NWDS version is 7.0.
    Thanks and Regards,
    Arya

    Hi Aryadipta
    Please check this pdfs
    https://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/b00917dc-ead4-2910-3ebb-b0a63e49ef10&overridelayout=true
    Steps for calling stateless session bean in Webdynpro java
    Go to NWDS -> open perspective ->j2ee
    select EJB Module Project ->create a project with name
    Open the Project -->RC on ejb-jar.xml -> Select new --> EJB
    Give name to EJB Bean (First letter should be in capital letters)
    select the type of bean as Stateless session bean and give the package name to store that EJB bean.
    After that Expand ejb-jar.xml and then select the <projectEJB> 
    Double click on this on method  tab double click you will get business method where we will create the methods for business logic
    Double click on projectEJB and then RC on bean tab and write required business logic in bean window as follows(based on requirement we will design a business logic).
    After writing the business logic go to project -> rebuild
    Till now we have created one EJB jar file
    then go to File-->Enterprise Application Project -->create a project (projectEAR)
    After creating a project click on next-> here we will have ear projects and then we select specific project required for our application.(here select projectEJB)
    After that Calculate EAR project will be available on j2ee explorer.
    Right click on <Bean> here
    select New->Web Service->give a name to webservice and select Default configuration type as simple SOAP
    -->click next -> Finish.
    That webservice and related are created in ejb-jar.xml .
    Expand the ejb-jar.xml.and double click on < webservice>
    RC ProjectEJB -> Build EJB Archive RC on CalculateEAR ->Build applicationarchive.
    Expand the projectEAR->RC on CalculateEAR.ear->Deploy to J2EE Engine
    Double click on calculateEAR.ear ->Webservice navigator tab ->we eill servers expand the node
    select the specific WebService  
    Here we test the webservice by click on Test and test it.
    After that go to Web dynpro perspective ->create one webdynpro Project and one component
    RC on model> Select import Web Service model(last)>give model name and package
    and select radio button as local file system or URL
    Go to WSnavigator->copy the WSDL path and paste it in model WSDL path and click on finish.
    from here onwards steps are same as that adaptive RFC model
    Hope it helps
    Thanks
    Tulasi Palnati
    Edited by: Tulasi Palnati on Aug 26, 2009 12:15 PM
    Edited by: Tulasi Palnati on Aug 26, 2009 12:43 PM

  • 8i hangs when calling a complex EJB

    Regarding 8i (8.1.6) and EJBs on an NT Server...
    We have been working towards deployment of a web application, using 8i, for some time now and have overcome a number of problems encountered with EJBs (remote access via 2481, clientserverserver demo not working when connecting as any other user than the EJB owner etc.). We have found the going hard at times but we have now hit a potential showstopper problem that we can't find a way around.
    We have deployed ~25 EJBs and can call them many times from our client, including EJBs calling other EJBs. However, we have a more complex EJB that acts as client to 15 other EJBs and this is hanging intermittently. Sometimes it runs OK but then hangs at different points with ORACLE.EXE taking 100%
    CPU. The only recovery is to reboot the server.
    In our testing we have noticed the following points...
    1. Starting the database up, running some EJBs, shutting down the database and then restarting it leaves ORACLE.EXE taking ever more memory without apparently releasing any. This can be seen to get worse and worse when repeating this loop.
    2. When running many EJBs using several different Oracle connections (~10 different Oracle users) ORACLE.EXE takes more and more memory. It occassionally releases some but overtime grows.
    3. Deploying EJBs increases the memory usage of ORACLE.EXE significantly. The memory is not released.
    Some other points...
    1. The EJBs called by the main EJB are the same ones that are called OK from an external client.
    2. When the server hangs it tends to be when the main EJB is a). doing the JNDI lookup on another EJB OR b). running a method within another EJB. But it is difficult to spot any clear pattern.
    3. We are using //thisServer/:thisSession when calling EJBs serverside.
    We suspect that there may be a resource issue that causes problems under more complex scenarios.
    Questions...
    1. Are there known resource management problems with 8i on NT, or have we missed something ?
    2. Has anyone else got problems with ORACLE.EXE hanging when using EJBs ?
    3. Does anyone have any suggestions/ solutions ?
    Thanks, Andy Blears :(

    Stefan,
    Thanks for the input. We have now applied patches up to 8.1.6.1 (I can't find any more recent) and the problem still occurs. The behaviour may have become more predictable in that it seems to go into an eternal loop whilst trying to load classes. BUT it may work well for periods of time.
    Re. the performance it seems to be OK on the small tests we have run so far but because of the problems we're having we haven't run full stress/volume tests yet...I'll let you know - Are you asking because you have experienced poor performance ?

  • JNDI Error  when calling ejb

    I've create a ear file include a war and jar
    when I call the servlet that call a ejb
    the following error prompt out:
    javax.naming.NameNotFoundException: Unable to resolve gendocnum. Resolved:
    '' Unresolved:'gendocnum' ; remaining name ''
    <<no stack trace available>>
    [2001/04/09 12:14:27, 0] nmbd/nmbd_namequery.c:query_name_response(93)
    query_name_response: Multiple (2) responses received for a query on subnet
    192.168.1.222 for name EDP<1d>. This response was from IP 192.168.1.134
    Please help
    Regards,
    Angel
    p.s. 'gendocnum' is the JNDI name of ejb

    It seems that u need a ejbPostCreate with the same parameters as ejbCreate:
    public Integer ejbCreate(Integer id) {
    setId(id);
    return id;
    public void ejbPostCreate(Integer id) {
    }

  • Error when One EJB calls anothe EJB

    Hi,
    I got the following error when I use one EJB call another EJB in OAS 4.0.8.1, the code is developed in JDeveloper 3.0/Win NT 4.0/SP5.
    Can anyone give me some ideas? or is there any samples in this case?
    Thanks a lot!
    Creating an initial context
    Looking for the EJB published as 'APP/APPEJB'
    Creating a new EJB instance
    Calling APPEJB methods...
    CORBA: org.omg.CORBA.BAD_OPERATION: ; nested exception is:
    org.omg.CORBA.BAD_OPERATION:
    java.rmi.ServerException: CORBA: org.omg.CORBA.BAD_OPERATION: ; nested exception is:
    org.omg.CORBA.BAD_OPERATION:
    at javax.rmi.oas.corba.CorbaRemoteExceptionHelperValue.OBVObjFrom(Compiled Code)
    at TwoEJB._stub_APPEJB.callEJBMapping(Compiled Code)
    at TwoEJB.TwoEJBClient.main(Compiled Code)
    null

    Home handle is an object that identifies an enterprise bean. A client may serialize the handle, and then later deserialize it to obtain a reference to the enterprise bean.
    The javax.ejb.HomeHandle is similar to javax.ejb.Handle. Just as the Handle is used to store and retrieve reference to EJB objects, the HomeHandle is used to store and retrieve remote references to EJB homes. HomeHandle can be stored and later used to access an EJB home remote refrence the same way that a Handle can be serialized and later used to access an EJB object's remoe reference.
    import java.io.*;
    import javax.ejb.EJBHome;
    import javax.ejb.HomeHandle;
    public class WorkingWithEJBHandles {
    public static void main( String[] args ) throws Exception {
    EJBHome aHome = null;
    // get hold of a home interface
    HomeHandle handle = aHome.getHomeHandle();
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    ObjectOutputStream oos = new ObjectOutputStream( bos );
    oos.writeObject( handle );
    byte[] handleAsBytes = bos.toByteArray();
    // store in the database, on file. howwever you want
    FileInputStream fis = new FileInputStream( "fileobj" );
    ObjectInputStream ois = new ObjectInputStream( fis );
    HomeHandle theHandle = (HomeHandle) ois.readObject();
    // get back the EJBHome from the HomeHandle
    aHome = theHandle.getEJBHome();
    // the same kind of logic also holds for EJBHandles, as well as
    // HomeHandles
    Transfer Object is a Design pattern. Refer to Core J2EE Design Pattern.
    http://java.sun.com/blueprints/corej2eepatterns/Patterns/TransferObject.html
    Rgds,
    Seetesh

  • JCO RFC Provider: "Bean not found" when calling EJB from ABAP via RFC

    Hello,
    I'm having trouble calling an EJB in a CE 7.1 system from ABAP via RFC. I'm trying to use the JCO RFC Provider service, which mean that I want to expose an EJB so that it can be called via Remote Function Call.
    I have documented everything, including the code and the deployment descriptors I wrote, in this thread in the CE forum: Jco RFC Provider: Bean not found
    If there's any chance you can help, please do me a favour and look into the problem.
    Thanks a lot!
    Thorsten

    Hi Vladimir,
    Thank you very much, your help was immensely valuable.
    I just had to add the function declaration to the Home Component interface, everything else was correct, and now it works.
    Cheers,
    Thorsten

  • How to Call one EJB from another

    Hi all
    I am trying to call one EJB in one system from another EJB residing on diferent system...
    Both are Stateless session beans ...
    I can't use No-args Intialcontext() as i need to specify the Ip address of other system to be looked up.....
    So i am using properties Dorg.omg.CORBA.ORBInitlalHost....
    But its not looking up..Its telling not bound...But i called it from standalone client remotely...
    Am i wrong..?
    I hope I am in right path....
    I hope ill get reply as fast as possible...
    Gopal V

    Hi ken Thanks for replying....
    Ya i packed it as a jar (using Export tool in Eclipse3.2)....
    I am using SUN AS 9.....
    I packed bean1 and bean2 as two different jars in the same domain...
    Here is my code...
    Bean1:
    @Stateless(mappedName="ejb/Second")
    public class SecondIMPL implements SecondRemote {
         public FirstRemote obj;
         public String connect() {
              try{
                   InitialContext ctx= new InitialContext();
                   FirstRemote obj =(FirstRemote)ctx.lookup("ejb/First");
                   System.out.println("Client :"+obj.bMethod());
              }catch(Exception e){
                   e.printStackTrace();
              return "Check server Log";
    }Bean2 :
    @Stateless(mappedName="ejb/First")
    public class FirstIMPL implements FirstRemote {
         public String bMethod() {
              return "From First Bean";
    Client:
    public static void main(String[] args) {
              try{
                   InitialContext ctx= new InitialContext();
                   SecondRemote obj =(SecondRemote)ctx.lookup("ejb/Second");
                   System.out.println("Client :"+obj.connect());
              }catch(Exception e){
                   e.printStackTrace();
    Here is my Stack Trace...
    [#|2007-05-24T18:35:17.214+0530|WARNING|sun-appserver-pe9.0|javax.enterprise.system.stream.err|_ThreadID=18;_ThreadName=p: thread-pool-1; w: 19;_RequestID=bb4848e7-829a-421d-a560-93659898eb02;|
    javax.naming.NamingException: ejb ref resolution error for remote business interfacecom.SecondRemote[Root exception is java.lang.ClassNotFoundException: com.SecondRemote]
         at com.sun.ejb.EJBUtils.lookupRemote30BusinessObject(EJBUtils.java:350)
         at com.sun.ejb.containers.RemoteBusinessObjectFactory.getObjectInstance(RemoteBusinessObjectFactory.java:61)
         at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
         at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:314)
         at javax.naming.InitialContext.lookup(InitialContext.java:351)
         at com.FirstBean.rediff(FirstBean.java:16)
         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:585)
         at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1050)
         at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:165)
         at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2766)
         at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3847)
         at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:190)
         at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:110)
         at $Proxy36.rediff(Unknown Source)
         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:585)
         at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:121)
         at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:650)
         at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:193)
         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1705)
         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1565)
         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:947)
         at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:178)
         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:717)
         at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.dispatch(SocketOrChannelConnectionImpl.java:473)
         at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.doWork(SocketOrChannelConnectionImpl.java:1270)
         at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:479)
    Caused by: java.lang.ClassNotFoundException: com.Second
         at com.sun.enterprise.loader.EJBClassLoader.findClassData(EJBClassLoader.java:701)
         at com.sun.enterprise.loader.EJBClassLoader.findClass(EJBClassLoader.java:614)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
         at com.sun.ejb.EJBUtils.getBusinessIntfClassLoader(EJBUtils.java:568)
         at com.sun.ejb.EJBUtils.lookupRemote30BusinessObject(EJBUtils.java:320)
         ... 31 more
    |#]

  • HOWTO: Using a BC4J Application Module in an Stateless EJB Session Bean

    HOWTO: Using a BC4J Application Module in an Stateless EJB Session Bean
    by Steve Muench
    Overview
    BC4J provides automatic facilities for deploying any application module as a stateful EJB session bean. If you want to leverage the features of your BC4J application module from a stateless EJB session bean, it's not automatic but it is straightforward to implement. This howto article explains the details.
    For our example, we will create a stateless EJB session bean that uses a container-managed transaction. To keep things simple, let's assume the session bean has a single public method on its remote interface named createDepartment() with the following signature:
    public void createDepartment(int id, String name, String loc) throws AppException
    AppException is an example of an application-specific exception that our method will throw if any problems arise during its execution.The goal of this article is to illustrate how to use the BC4J application module named com.example.hr.HRApp as part of the implementation of this createDepartment method on our stateless enterprise bean. Let's assume that the HRApp application module has a view object member named Departments, based on the com.example.hr.DeptView view object, based on the familiar DEPT table and related to the com.example.hr.Dept entity object so our view can be updateable.
    Creating the Stateless Session Bean
    We can start by using the JDeveloper Enterprise Bean wizard to create a new stateless session bean called StatelessSampleEJB implemented by:[list][*]com.example.StatelessSampleEJBBean (Bean class)[*]com.example.StatelessSampleEJBHome (Home interface)[*]com.example.StatelessSampleEJB (Remote interface)[list]
    We then use the EJB Class Editor to add the createDepartment method to the remote interface of StatelessSampleEJB with the signature above. We edit the remote interface to make sure that it also reflects that the createDepartment method thows the AppException like this:
    package com.example;
    import javax.ejb.EJBObject;
    import java.rmi.RemoteException;
    public interface StatelessSampleEJB extends EJBObject {
      void createDepartment(int id, String name, String loc)
      throws RemoteException,AppException;
    }Before we start adding BC4J into the picture for our implementation, our StatelessSampleEJBBean class looks like this:
    package com.example;
    import javax.ejb.SessionBean;
    import javax.ejb.SessionContext;
    public class StatelessSampleEJBBean implements SessionBean {
      public void ejbCreate(){}
      public void ejbActivate(){}
      public void ejbPassivate(){}
      public void ejbRemove(){}
      public void setSessionContext(SessionContext ctx){
      public void createDepartment(int id, String name, String loc) 
      throws AppException {
        // TODO: Implement method here
    }We can double-click on the ejb-jar.xml file in our project to see the XML deployment descriptor for the bean we just created:
    <ejb-jar>
       <enterprise-beans>
          <session>
             <description>Session Bean ( Stateless )</description>
             <display-name>StatelessSampleEJB</display-name>
             <ejb-name>StatelessSampleEJB</ejb-name>
             <home>com.example.StatelessSampleEJBHome</home>
             <remote>com.example.StatelessSampleEJB</remote>
             <ejb-class>com.example.StatelessSampleEJBBean</ejb-class>
             <session-type>Stateless</session-type>
             <transaction-type>Container</transaction-type>
          </session>
       </enterprise-beans>
    </ejb-jar>We need to add the extra <assembly-descriptor> section in this file to indicate that the createDepartment method will require a transaction. After this edit, the ejb-jar.xml file looks like this:
    <ejb-jar>
       <enterprise-beans>
          <session>
             <description>Session Bean ( Stateless )</description>
             <display-name>StatelessSampleEJB</display-name>
             <ejb-name>StatelessSampleEJB</ejb-name>
             <home>com.example.StatelessSampleEJBHome</home>
             <remote>com.example.StatelessSampleEJB</remote>
             <ejb-class>com.example.StatelessSampleEJBBean</ejb-class>
             <session-type>Stateless</session-type>
             <transaction-type>Container</transaction-type>
          </session>
       </enterprise-beans>
       <assembly-descriptor>
          <container-transaction>
             <method>
                <ejb-name>StatelessSampleEJB</ejb-name>
                <method-name>createDepartment</method-name>
                <method-params>
                   <method-param>int</method-param>
                   <method-param>java.lang.String</method-param>
                   <method-param>java.lang.String</method-param>
                </method-params>
             </method>
             <trans-attribute>Required</trans-attribute>
          </container-transaction>
       </assembly-descriptor>
    </ejb-jar>
    Aggregating a BC4J Application Module
    With the EJB aspects of our bean setup, we can proceed to implementing the BC4J application module aggregation.
    The first thing we do is add private variables to hold the EJB SessionContext and the instance of the aggregated BC4J ApplicationModule, like this:
    // Place to hold onto the aggregated appmodule instance
    transient private ApplicationModule _am  = null;
    // Remember the SessionContext that the EJB container provides us
    private           SessionContext    _ctx = null;and we modify the default, empty implementation of the setSessionContext() method to remember the session context like this:
    public void setSessionContext(SessionContext ctx){ _ctx = ctx; }We add additional constants that hold the names of the J2EE datasource that we want BC4J to use, as well as the fully-qualified name of the BC4J application module that we'll be aggregating:
    // JNDI resource name for the J2EE datasource to use
    private static final String DATASOURCE = "jdbc/OracleCoreDS";
    // Fully-qualified BC4J application module name to aggregate
    private static final String APPMODNAME = "com.example.hr.HRApp";We expand the now-empty ejbCreate() and ejbRemove() methods to create and destory the aggregated instance of the BC4J application module that we'll use for the lifetime of the stateless session bean. When we're done, ejbCreate() it looks like this:
    public void ejbCreate() throws CreateException {
      try {
        // Setup a hashtable of environment parameters for JNDI initial context
        Hashtable env = new Hashtable();
        env.put(JboContext.INITIAL_CONTEXT_FACTORY,JboContext.JBO_CONTEXT_FACTORY);
        // NOTE: we want to use the BC4J app module in local mode as a simple Java class!
        env.put(JboContext.DEPLOY_PLATFORM, JboContext.PLATFORM_LOCAL);
        env.put(PropertyConstants.INTERNAL_CONNECTION_PARAMS,DATASOURCE);
        // Create an initial context, using this hashtable of environment params
        InitialContext ic = new InitialContext(env);
        // Lookup a home interface for the application module
        ApplicationModuleHome home = (ApplicationModuleHome)ic.lookup(APPMODNAME);
        // Using the home, create the instance of the appmodule we'll use
        _am = home.create();
        // Register the BC4J factory to handle EJB container-managed transactions
        registerContainerManagedTransactionHandlerFactory();
      catch(Exception ex) {
         ex.printStackTrace();
        throw new CreateException(ex.getMessage());
    }and ejbRemove() looks like this:
    public void ejbRemove() {
      try {
        // Cleanup any appmodule resources before getting shutdown
        _am.remove();
      catch(JboException ex) { /* Ignore */ }
    }The helper method named reigsterContainerManagedTransactionHandlerFactory() looks like this:
    private void registerContainerManagedTransactionHandlerFactory() {
      SessionImpl session = (SessionImpl)_am.getSession();
      session.setTransactionHandlerFactory(
        new TransactionHandlerFactory() {
          public TransactionHandler  createTransactionHandler() {
            return new ContainerManagedTxnHandlerImpl();
          public JTATransactionHandler createJTATransactionHandler() {
            return new ContainerManagedTxnHandlerImpl();
    }The last detail is to use the BC4J appmodule to implement the createDepartment() method. It ends up looking like this:
    public void createDepartment(int id, String name, String loc)
    throws AppException {
      try {
        // Connect the AM to the datasource we want to use for the duration
        // of this single method call.
        _am.getTransaction().connectToDataSource(null,DATASOURCE,false);
        // Use the "Departments" view object member of this AM
        ViewObject departments = _am.findViewObject("Departments");
        // Create a new row in this view object.
        Row newDept = departments.createRow();
        // Populate the attributes from the parameter arguments.
        newDept.setAttribute("Deptno", new Number(id));
        newDept.setAttribute("Dname", name);
        newDept.setAttribute("Loc", loc);
        // Add the new row to the view object's default rowset
        departments.insertRow(newDept);
        // Post all changes in the AM, but we don't commit them. The EJB
        // container managed transaction handles the commit.
        _am.getTransaction().postChanges();
      catch(JboException ex) {
        // To be good EJB Container-Managed Transaction "citizens" we have
        // to mark the transaction as needing a rollback if there are problems
        _ctx.setRollbackOnly();
        throw new AppException("Error creating dept "+ id +"\n"+ex.getMessage());
      finally {
        try {
          // Disconnect the AM from the datasource we're using
          _am.getTransaction().disconnect();
        catch(Exception ex) { /* Ignore */ }
    Building a Test Client
    With the EJB-Tier work done, we can build a sample client program to test this new stateless EJB Session Bean by selecting the bean in the Oracle9i JDeveloper IDE and choosing "Create Sample Java Client" from the right-mouse menu.
    When the "Sample EJB Client Details" dialog appears, we take the defaults of connecting to embedded OC4J container. Clicking the (OK) button generates the following test class:
    import java.util.Hashtable;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import com.example.StatelessSampleEJB;
    import com.example.StatelessSampleEJBHome;
    public class SampleStatelessSampleEJBClient {
      public static void main(String [] args) {
        SampleStatelessSampleEJBClient sampleStatelessSampleEJBClient =
           new SampleStatelessSampleEJBClient();
        try {
          Hashtable env = new Hashtable();
          env.put(Context.INITIAL_CONTEXT_FACTORY,
                  "com.evermind.server.rmi.RMIInitialContextFactory");
          env.put(Context.SECURITY_PRINCIPAL, "admin");
          env.put(Context.SECURITY_CREDENTIALS, "welcome");
          env.put(Context.PROVIDER_URL,
                  "ormi://localhost:23891/current-workspace-app");
          Context ctx = new InitialContext(env);
          StatelessSampleEJBHome statelessSampleEJBHome =
               (StatelessSampleEJBHome)ctx.lookup("StatelessSampleEJB");
          StatelessSampleEJB statelessSampleEJB;
          // Use one of the create() methods below to create a new instance
          // statelessSampleEJB = statelessSampleEJBHome.create();
          // Call any of the Remote methods below to access the EJB
          // statelessSampleEJB.createDepartment( int id, java.lang.String name, java.lang.String loc );
        catch(Throwable ex) {
          ex.printStackTrace();
    }We uncomment the call to the create() method and add a few calls to the createDepartment() method so that the body of the test program now looks like this:
    // Use one of the create() methods below to create a new instance
    statelessSampleEJB = statelessSampleEJBHome.create();
    // Call any of the Remote methods below to access the EJB
    statelessSampleEJB.createDepartment( 13, "Test1","Loc1");
    System.out.println("Created department 13");
    statelessSampleEJB.createDepartment( 14, "Test2","Loc2");
    System.out.println("Created department 14");
    try {
      // Try setting a department id that is too large!
      statelessSampleEJB.createDepartment( 23456, "Test3","Loc3");
    catch (AppException ax) {
      System.err.println("AppException: "+ax.getMessage());
    }Before we can successfully run our SampleStatelessSampleEJBClient we need to first run the EJB bean that the client will try to connect to. Since Oracle9i JDeveloper supports local running and debugging of the EJB-Tier without doing through a full J2EE deployment step, to accomplish this prerequisite step we just need to right-mouse on the StatelessSampleEJB node in the System Navigator and select "Run". This starts up the embedded OC4J instance and runs the EJB right out of the current out path.Finally, we can run the SampleStatelessSampleEJBClient, and see the output of the test program in the JDeveloper log window:
    Created department 13
    Created department 14
    AppException: Error creating dept 23456
    JBO-27010: Attribute set with value 23456 for Deptno in Dept has invalid precision/scale
    Troubleshooting
    One error that might arise while running the example is that the database connection information in your data-sources.xml for the jdbc/OracleCoreDS datasource does not correspond to the database you are trying to test against. If this happens, then double-check the file .\jdev\system\oc4j-config\data-sources.xml under the JDeveloper installation home directory to make sure that the url value provided is what you expect. For example, to work against a local Oracle database running on your current machine, listening on port 1521, with SID of ORCL, you would edit this file to have an entry like this for jdbc/OracleCoreDS :
    <data-source
        class="com.evermind.sql.DriverManagerDataSource"
        name="OracleDS"
        location="jdbc/OracleCoreDS"
        xa-location="jdbc/xa/OracleXADS"
        ejb-location="jdbc/OracleDS"
        connection-driver="oracle.jdbc.driver.OracleDriver"
        username="scott"
        password="tiger"
        url="jdbc:oracle:thin:@localhost:1521:ORCL"
        inactivity-timeout="30"
    />This is the data-sources.xml file that gets used by the embedded OC4J instance running in JDeveloper.
    Conclusion
    Hopefully this article has illustrated that it is straightforward to utilize the full power of BC4J in local mode as part of your EJB Stateless Session Beans using container-managed transaction. This example illustrated a single createDepartment method in the enterprise bean, but by replicating the application module interaction code that we've illustrated in createDepartment, any number of methods in your stateless session bean can use the aggregated application module instance created in the ejbCreate() method.
    Code Listing
    The full code listing for the SampleStatelessEJB bean implementation class looks like this:
    * StatelessSampleEJB
    * Illustrates how to use an aggregated BC4J application module
    * in local mode as part of the implementation of a stateless
    * EJB session bean using container-managed transaction.
    * HISTORY
    * smuench/dmutreja 14-FEB-2002 Created
    package com.example;
    import oracle.jbo.*;
    import oracle.jbo.server.*;
    import javax.ejb.*;
    import oracle.jbo.domain.Number;
    import oracle.jbo.common.PropertyConstants;
    import java.util.Hashtable;
    import javax.naming.InitialContext;
    import oracle.jbo.server.ejb.ContainerManagedTxnHandlerImpl;
    public class StatelessSampleEJBBean implements SessionBean {
      // JNDI resource name for the J2EE datasource to use
      private static final String DATASOURCE = "jdbc/OracleCoreDS";
      // Fully-qualified BC4J application module name to aggregate
      private static final String APPMODNAME = "com.example.hr.HRApp";
      // Place to hold onto the aggregated appmodule instance
      transient private ApplicationModule _am  = null;
      // Remember the SessionContext that the EJB container provides us
      private           SessionContext    _ctx = null;
      public void ejbCreate() throws CreateException {
        try {
          // Setup a hashtable of environment parameters for JNDI initial context
          Hashtable env = new Hashtable();
          env.put(JboContext.INITIAL_CONTEXT_FACTORY,JboContext.JBO_CONTEXT_FACTORY);
          env.put(JboContext.DEPLOY_PLATFORM, JboContext.PLATFORM_LOCAL);
          env.put(PropertyConstants.INTERNAL_CONNECTION_PARAMS,DATASOURCE);
          // Create an initial context, using this hashtable of environment params
          InitialContext ic = new InitialContext(env);
          // Lookup a home interface for the application module
          ApplicationModuleHome home = (ApplicationModuleHome)ic.lookup(APPMODNAME);
          // Using the home, create the instance of the appmodule we'll use
          _am = home.create();
          // Register the BC4J factory to handle EJB container-managed transactions
          registerContainerManagedTransactionHandlerFactory();
        catch(Exception ex) {
           ex.printStackTrace();
          throw new CreateException(ex.getMessage());
      public void ejbActivate(){}
      public void ejbPassivate(){}
      public void ejbRemove(){}
      public void setSessionContext(SessionContext ctx){ _ctx = ctx; }
      public void createDepartment(int id, String name, String loc)
      throws AppException {
        try {
          // Connect the AM to the datasource we want to use for the duration
          // of this single method call.
          _am.getTransaction().connectToDataSource(null,DATASOURCE,false);
          // Use the "Departments" view object member of this AM
          ViewObject departments = _am.findViewObject("Departments");
          // Create a new row in this view object.
          Row newDept = departments.createRow();
          // Populate the attributes from the parameter arguments.
          newDept.setAttribute("Deptno", new Number(id));
          newDept.setAttribute("Dname", name);
          newDept.setAttribute("Loc", loc);
          // Add the new row to the view object's default rowset
          departments.insertRow(newDept);
          // Post all changes in the AM, but we don't commit them. The EJB
          // container managed transaction handles the commit.
          _am.getTransaction().postChanges();
        catch(JboException ex) {
          // To be good EJB Container-Managed Transaction "citizens" we have
          // to mark the transaction as needing a rollback if there are problems
          _ctx.setRollbackOnly();
          throw new AppException("Error creating dept "+ id +\n"+ex.getMessage());
        finally {
          try {
            // Disconnect the AM from the datasource we're using
            _am.getTransaction().disconnect();
          catch(Exception ex) { /* Ignore */ }
      private void registerContainerManagedTransactionHandlerFactory() {
        SessionImpl session = (SessionImpl)_am.getSession();
        session.setTransactionHandlerFactory(
          new TransactionHandlerFactory() {
            public TransactionHandler createTransactionHandler() {
              return new ContainerManagedTxnHandlerImpl();
            public JTATransactionHandler createJTATransactionHandler() {
              return new ContainerManagedTxnHandlerImpl();

    Hi Steve, It4s me again;
    About the question I made, I tried with a single assembly-descriptor tag and a single container-transaction tag in the deployment descriptor of the session bean and these were the results.
    java.lang.NullPointerException
         void com.evermind.server.rmi.RMIConnection.EXCEPTION_ORIGINATES_FROM_THE_REMOTE_SERVER(java.lang.Throwable)
         java.lang.Object com.evermind.server.rmi.RMIConnection.invokeMethod(com.evermind.server.rmi.RMIContext, long, long, java.lang.reflect.Method, java.lang.Object[])
         java.lang.Object com.evermind.server.rmi.RemoteInvocationHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
         java.lang.Object com.evermind.server.rmi.RecoverableRemoteInvocationHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
         java.lang.Object com.evermind.server.ejb.StatelessSessionRemoteInvocationHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
         void __Proxy1.modificaEnvoltura(java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.String)
         void SamplemdeController.envolturaControlEJBClient.main(java.lang.String[])
    Then I tried with multiple assembly-descriptor tags each with a single container-transaction tag and the results were:
    java.lang.NullPointerException
         void com.evermind.server.rmi.RMIConnection.EXCEPTION_ORIGINATES_FROM_THE_REMOTE_SERVER(java.lang.Throwable)
         java.lang.Object com.evermind.server.rmi.RMIConnection.invokeMethod(com.evermind.server.rmi.RMIContext, long, long, java.lang.reflect.Method, java.lang.Object[])
         java.lang.Object com.evermind.server.rmi.RemoteInvocationHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
         java.lang.Object com.evermind.server.rmi.RecoverableRemoteInvocationHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
         java.lang.Object com.evermind.server.ejb.StatelessSessionRemoteInvocationHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
         void __Proxy1.modificaEnvoltura(java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.String)
         void SamplemdeController.envolturaControlEJBClient.main(java.lang.String[])
    Finally I tried with a single assembly-descriptor and multiple container tags and the results were:
    java.lang.NullPointerException
         void com.evermind.server.rmi.RMIConnection.EXCEPTION_ORIGINATES_FROM_THE_REMOTE_SERVER(java.lang.Throwable)
         java.lang.Object com.evermind.server.rmi.RMIConnection.invokeMethod(com.evermind.server.rmi.RMIContext, long, long, java.lang.reflect.Method, java.lang.Object[])
         java.lang.Object com.evermind.server.rmi.RemoteInvocationHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
         java.lang.Object com.evermind.server.rmi.RecoverableRemoteInvocationHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
         java.lang.Object com.evermind.server.ejb.StatelessSessionRemoteInvocationHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
         void __Proxy1.modificaEnvoltura(java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.String)
         void SamplemdeController.envolturaControlEJBClient.main(java.lang.String[])
    How can I make my Stateless Session bean work out?

Maybe you are looking for

  • Basic structure question (applet GUI)

    I need to have an applet that allows you to draw on top of various sized images. The images are stored in a jar file, and the HTML tells me (via a parameter with a list of image sizes) the size of each of the images (Width x Height). What you have is

  • Select Template at run time?

    I have a site that contains content for multiple languages. Each language currently has it's own set of templates and this works well in conjunction with Contribute. However, some page are shared between the different languages, usually those contain

  • SSRS sub report not fitting exactly in the parent textbox in main report.

    Hi All, I have a small sub report placed in the main report. Everything is working fine except that the sub report not fitting exactly in the parent text box is bothering me and disturbing the look of it. Can any one tell me how to make the sub repor

  • Masking Sensitive Data in SAP

    Hey Experts.  Can someone tell me how we can "Mask" certain data in SAP, using Standard functionality.  We don't want to customize, so if a way exists, please share. We want to be able to blank out or mask data such as the description of the WBS Elem

  • Prcessing KEU5 transaction for multilple controlling areas in parallel

    Hi, I have executed KUE5 transaction with an assessment cycle for a controlling area and when i try to execute the same transaction with an assessment cycle for another controlling area in parallel, there is an error message 'Cycle YOCETEST2 01.02.20