Creation of Application module - JClient

How can I create two instance of the same application module?
Now, my application has 2 frame that should work indipendtly (indipendent transaction), instead the frame are sinchronized.
I see that the hashCode() of JUApplication module is different, instead the .getApplicationModule() is the same.
What I have to do to create an other instance of applicationmodule instead of using a "pool".
Thanks

Please, give me the code for a JClient connection.JClient source is shipped with JDev and could be found in (JDEVHOME)\bc4j\src\bc4juisrc.zip
oracle.jbo.common.Configuration is Deprecated
My mistake. See oracle.jbo.client.Configuration for methods to create an application module from a "configuration" name.
JUMetaObjectManager.setApplicationObject(...) return no value (void). You can call JUMetaObjectManager.findApplicationObject(withTheGivenQualifiedName) to get the JUApplication object created in set...

Similar Messages

  • Creation of Application module failed

    Hi all,
    I'm trying to deploy BC4J as EJB on OAS4.0.8.2 (OAS and Oracle 8.1.6 on Solaris 2.7). Deployment went OK, I can open Business Component browser but in Object Members View I can see only 2 records for each view (looks like recordset properties?), also I cannot create, update, delete a record. When I'm trying to create app. module I getting "Unknown remote exception: CORBA: org.omg.CORBA.INTERNAL: minor code: 0 completed: No; nested exception is: Everything is working fine when I'm testing BC locally.
    Thanks.
    java.rmi.RemoteException: CORBA: org.omg.CORBA.INTERNAL: minor code: 0 completed: No; nested exception is:
    org.omg.CORBA.INTERNAL: minor code: 0 completed: No
    org.omg.CORBA.INTERNAL: minor code: 0 completed: No
    java.lang.reflect.Method java.lang.Class.getMethod0(java.lang.String, java.lang.Class[], int)
    java.lang.reflect.Method java.lang.Class.getDeclaredMethod(java.lang.String, java.lang.Class[])
    java.lang.Object javax.swing.text.JTextComponent$1.run()
    java.lang.Object java.security.AccessController.doPrivileged(java.security.PrivilegedAction)
    boolean javax.swing.text.JTextComponent.isProcessInputMethodEventOverridden()
    void javax.swing.text.JTextComponent.<init>()
    void javax.swing.JTextArea.<init>(javax.swing.text.Document, java.lang.String, int, int)
    void javax.swing.JTextArea.<init>(int, int)
    void oracle.jbo.jbotester.ErrorHandler.<init>(java.awt.Frame, java.lang.String, boolean)
    void oracle.jbo.jbotester.ErrorHandler.displayError(java.awt.Frame, java.lang.Throwable)
    void oracle.jbo.jbotester.AMDialog.createAppModule()
    void oracle.jbo.jbotester.AMDialog.actionPerformed(java.awt.event.ActionEvent)
    void javax.swing.AbstractButton.fireActionPerformed(java.awt.event.ActionEvent)
    void javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(java.awt.event.ActionEvent)
    void javax.swing.DefaultButtonModel.fireActionPerformed(java.awt.event.ActionEvent)
    void javax.swing.DefaultButtonModel.setPressed(boolean)
    void javax.swing.plaf.basic.BasicButtonListener.mouseReleased(java.awt.event.MouseEvent)
    void java.awt.Component.processMouseEvent(java.awt.event.MouseEvent)
    void java.awt.Component.processEvent(java.awt.AWTEvent)
    void java.awt.Container.processEvent(java.awt.AWTEvent)
    void java.awt.Component.dispatchEventImpl(java.awt.AWTEvent)
    void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
    void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
    void java.awt.LightweightDispatcher.retargetMouseEvent(java.awt.Component, int, java.awt.event.MouseEvent)
    boolean java.awt.LightweightDispatcher.processMouseEvent(java.awt.event.MouseEvent)
    boolean java.awt.LightweightDispatcher.dispatchEvent(java.awt.AWTEvent)
    void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
    void java.awt.Window.dispatchEventImpl(java.awt.AWTEvent)
    void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
    void java.awt.EventQueue.dispatchEvent(java.awt.AWTEvent)
    boolean java.awt.EventDispatchThread.pumpOneEvent()
    void java.awt.EventDispatchThread.pumpEvents(java.awt.Conditional)
    void java.awt.Dialog.show()
    void oracle.jbo.jbotester.GenericDialog.show()
    void oracle.jbo.jbotester.BaseTree.createApplicationModule(oracle.jbo.jbotester.ObjTreeNode)
    void oracle.jbo.jbotester.BaseTree.createApplicationModule(java.awt.event.ActionEvent)
    void oracle.jbo.jbotester.BaseTree$createApplicationModuleAction.actionPerformed(java.awt.event.ActionEvent)
    void javax.swing.AbstractButton.fireActionPerformed(java.awt.event.ActionEvent)
    void javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(java.awt.event.ActionEvent)
    void javax.swing.DefaultButtonModel.fireActionPerformed(java.awt.event.ActionEvent)
    void javax.swing.DefaultButtonModel.setPressed(boolean)
    void javax.swing.AbstractButton.doClick(int)
    void javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseReleased(java.awt.event.MouseEvent)
    void java.awt.Component.processMouseEvent(java.awt.event.MouseEvent)
    void java.awt.Component.processEvent(java.awt.AWTEvent)
    void java.awt.Container.processEvent(java.awt.AWTEvent)
    void java.awt.Component.dispatchEventImpl(java.awt.AWTEvent)
    void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
    void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
    void java.awt.LightweightDispatcher.retargetMouseEvent(java.awt.Component, int, java.awt.event.MouseEvent)
    boolean java.awt.LightweightDispatcher.processMouseEvent(java.awt.event.MouseEvent)
    boolean java.awt.LightweightDispatcher.dispatchEvent(java.awt.AWTEvent)
    void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
    void java.awt.Window.dispatchEventImpl(java.awt.AWTEvent)
    void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
    void java.awt.EventQueue.dispatchEvent(java.awt.AWTEvent)
    boolean java.awt.EventDispatchThread.pumpOneEvent()
    void java.awt.EventDispatchThread.pumpEvents(java.awt.Conditional)
    void java.awt.EventDispatchThread.run()
    null

    Hi all,
    I'm trying to deploy BC4J as EJB on OAS4.0.8.2 (OAS and Oracle 8.1.6 on Solaris 2.7). Deployment went OK, I can open Business Component browser but in Object Members View I can see only 2 records for each view (looks like recordset properties?), also I cannot create, update, delete a record. When I'm trying to create app. module I getting "Unknown remote exception: CORBA: org.omg.CORBA.INTERNAL: minor code: 0 completed: No; nested exception is: Everything is working fine when I'm testing BC locally.
    Thanks.
    java.rmi.RemoteException: CORBA: org.omg.CORBA.INTERNAL: minor code: 0 completed: No; nested exception is:
    org.omg.CORBA.INTERNAL: minor code: 0 completed: No
    org.omg.CORBA.INTERNAL: minor code: 0 completed: No
    java.lang.reflect.Method java.lang.Class.getMethod0(java.lang.String, java.lang.Class[], int)
    java.lang.reflect.Method java.lang.Class.getDeclaredMethod(java.lang.String, java.lang.Class[])
    java.lang.Object javax.swing.text.JTextComponent$1.run()
    java.lang.Object java.security.AccessController.doPrivileged(java.security.PrivilegedAction)
    boolean javax.swing.text.JTextComponent.isProcessInputMethodEventOverridden()
    void javax.swing.text.JTextComponent.<init>()
    void javax.swing.JTextArea.<init>(javax.swing.text.Document, java.lang.String, int, int)
    void javax.swing.JTextArea.<init>(int, int)
    void oracle.jbo.jbotester.ErrorHandler.<init>(java.awt.Frame, java.lang.String, boolean)
    void oracle.jbo.jbotester.ErrorHandler.displayError(java.awt.Frame, java.lang.Throwable)
    void oracle.jbo.jbotester.AMDialog.createAppModule()
    void oracle.jbo.jbotester.AMDialog.actionPerformed(java.awt.event.ActionEvent)
    void javax.swing.AbstractButton.fireActionPerformed(java.awt.event.ActionEvent)
    void javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(java.awt.event.ActionEvent)
    void javax.swing.DefaultButtonModel.fireActionPerformed(java.awt.event.ActionEvent)
    void javax.swing.DefaultButtonModel.setPressed(boolean)
    void javax.swing.plaf.basic.BasicButtonListener.mouseReleased(java.awt.event.MouseEvent)
    void java.awt.Component.processMouseEvent(java.awt.event.MouseEvent)
    void java.awt.Component.processEvent(java.awt.AWTEvent)
    void java.awt.Container.processEvent(java.awt.AWTEvent)
    void java.awt.Component.dispatchEventImpl(java.awt.AWTEvent)
    void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
    void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
    void java.awt.LightweightDispatcher.retargetMouseEvent(java.awt.Component, int, java.awt.event.MouseEvent)
    boolean java.awt.LightweightDispatcher.processMouseEvent(java.awt.event.MouseEvent)
    boolean java.awt.LightweightDispatcher.dispatchEvent(java.awt.AWTEvent)
    void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
    void java.awt.Window.dispatchEventImpl(java.awt.AWTEvent)
    void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
    void java.awt.EventQueue.dispatchEvent(java.awt.AWTEvent)
    boolean java.awt.EventDispatchThread.pumpOneEvent()
    void java.awt.EventDispatchThread.pumpEvents(java.awt.Conditional)
    void java.awt.Dialog.show()
    void oracle.jbo.jbotester.GenericDialog.show()
    void oracle.jbo.jbotester.BaseTree.createApplicationModule(oracle.jbo.jbotester.ObjTreeNode)
    void oracle.jbo.jbotester.BaseTree.createApplicationModule(java.awt.event.ActionEvent)
    void oracle.jbo.jbotester.BaseTree$createApplicationModuleAction.actionPerformed(java.awt.event.ActionEvent)
    void javax.swing.AbstractButton.fireActionPerformed(java.awt.event.ActionEvent)
    void javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(java.awt.event.ActionEvent)
    void javax.swing.DefaultButtonModel.fireActionPerformed(java.awt.event.ActionEvent)
    void javax.swing.DefaultButtonModel.setPressed(boolean)
    void javax.swing.AbstractButton.doClick(int)
    void javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseReleased(java.awt.event.MouseEvent)
    void java.awt.Component.processMouseEvent(java.awt.event.MouseEvent)
    void java.awt.Component.processEvent(java.awt.AWTEvent)
    void java.awt.Container.processEvent(java.awt.AWTEvent)
    void java.awt.Component.dispatchEventImpl(java.awt.AWTEvent)
    void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
    void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
    void java.awt.LightweightDispatcher.retargetMouseEvent(java.awt.Component, int, java.awt.event.MouseEvent)
    boolean java.awt.LightweightDispatcher.processMouseEvent(java.awt.event.MouseEvent)
    boolean java.awt.LightweightDispatcher.dispatchEvent(java.awt.AWTEvent)
    void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
    void java.awt.Window.dispatchEventImpl(java.awt.AWTEvent)
    void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
    void java.awt.EventQueue.dispatchEvent(java.awt.AWTEvent)
    boolean java.awt.EventDispatchThread.pumpOneEvent()
    void java.awt.EventDispatchThread.pumpEvents(java.awt.Conditional)
    void java.awt.EventDispatchThread.run()
    null

  • BC4J Application Module Pooling for JClient App

    Helo,
    i wonder why all documentation about bc4j application module pooling available is for Web app ? (jsp) . I'm creating swing JClient app and i need some doc about how the application module pooling works in this kind of application.
    anybody know where can i get those docs ?
    Need help and Thank you,
    Ricky H.P.

    Connection pooling can be achieved when a JVM instance manages the pool, in 3tiers the Java App. Server has that task.
    If you are 2tiers that means that you are communicating with the database through JDBC.
    When a user launches your JClient app in fact he lauches his own JVM instance so I don't how he could share a pool with other users.
    In your case you have at most 2 open transactions per user.
    You can achieve that by sharing a same binding context with n forms composed of m panels.
    Let's say:
    1 main form
    connection 1: forms a,b,c
    connection 2: forms x,y,z
    In your main form your open your 2 connections and share them.
    You can achieve that by:
    1) in our main form, initialize 2 binding containers
    Example of one:
    DCBindingContainer bc1 = this.createBindingContainer("package name","model name");
    private DCBindingContainer createBindingContainer(String packageName, String panelModelName)
    StringBuffer sb = new StringBuffer(packageName);
    sb.append(ViewConstants.STRING_DOT);
    sb.append(panelModelName);
    DCBindingContainerDef bcdef = DCBindingContainerDef.findDefObject(sb.toString()); //NOTE THE NAME.
    if (bcdef == null)
    throw new JboException("System error, "+getClass().getName()+".createBindingContainer, DCBindingContainerDef: "+sb.toString()+" not found");
    DCBindingContainer bc = bcdef.createBindingContainer(panelBinding.getBindingContext());
    bc.setName(panelModelName);
    panelBinding.getBindingContext().put(panelModelName, bc);
    return bc;
    2) Before that the jbInit method gets called in the called form, set the binding context:
    form1 = new Form1(...);
    form1.setBindingContainer(bc1) ;
    Example of methods in form 1 and form 2:
    public void setBindingContainer(DCBindingContainer ctr)
    this.panelBinding = (JUPanelBinding)ctr;
    setBindingContext(ctr.getBindingContext());
    public void setBindingContext(BindingContext bindCtx)
    if (panelBinding.getPanel() == null)
    panelBinding = panelBinding.setup(bindCtx, this);
    registerProjectGlobalVariables(bindCtx);
    panelBinding.refreshControl();
    try
    System.out.println("Form setBindingContext calling jbInit");
    jbInit();
    panelBinding.refreshControl();
    // FL added
    isBindingContextSet = true;
    System.out.println("Form isBindingContextSet true");
    catch(Exception ex)
    System.out.println("Form setBindingContext exception caught");
    panelBinding.reportException(ex);
    Regards
    Fred

  • Jclient Binding to nested application module

    we use a test case of
    Applications
    ParrentAM & NestedAM
    Forms
    ParrentForm & NestedForm
    We added a reference to the NestedAM datacontrol in the ParrentDatabindings.cpx
    When the ParrentForm attempts to set the bindingcontext in the NestedForm we recieve a null pointer exception.
    Can anyone provide some insite or an example for binding to a nested application module?
    thanks.

    Robert,
    what do you mean with "Nested Form", is it a JClient panel that is contained in another JClient panel ?
    Which JDeveloper release are you working with? Can you provide me a step by step instruction on how to reproduce your testcase in JClient (assume that I have a Business Component Model that has a MasterApp and a nested NestedApp module, both based on the Scott schema).
    thanks for your help
    Frank
    JDeveloper Product Management

  • Application module creation failed

    Can someone please help me? My data form (which runs fine
    through jdeveloper) is failing when I try to run it with an
    applet. This is what I get:
    DAC-405: SessionInfo: Application module creation failed;
    className: productionApp
    java.rmi.Remote
    I've been looking everywhere for help. No luck.
    Thank you.
    null

    Have you included, in the applet tag, all of the archives
    specified in the JDev console output when it runs correctly in
    JDev?
    - PSW
    Michele (guest) wrote:
    : A couple peculiar things are showing up in the java console:
    : com.ms.security.SecurityExceptionEx
    : [oracle/jbo/common/util/JboEnvUtil.getDefaultHost]: cannot
    : connect to "mcrow.syntax.com"
    : com.ms.security.SecurityExceptionEx
    : [javax/swing/SystemEventQueueUtilities$RunnableCanvas.lookup]:
    : Illegal ThreadGroup access.
    : What's going on?
    : Michele (guest) wrote:
    : : Can someone please help me? My data form (which runs fine
    : : through jdeveloper) is failing when I try to run it with an
    : : applet. This is what I get:
    : : DAC-405: SessionInfo: Application module creation failed;
    : : className: productionApp
    : : java.rmi.Remote
    : : I've been looking everywhere for help. No luck.
    : : Thank you.
    null

  • SessionVideo.publishSession() == DAC-405: Application module creation failed

    The project contains a dbInfo class that was designed as perscribed in the Data form tutorial. Also a frame class which has its textFields bound to the rowSetInfo dataItem that are described in the dbInfo class. The following error/exception occurs when i try to publish the sessionInfo:
    ERROR...
    PANIC
    DAC-405: SessionInfo: Application module creation failed; className: VideoDBModule
    DETAILS
    DAC-405: SessionInfo: Application module creation failed; className: VideoDBModule
    null
    Associated CODE...
    public dbInfo() {
    try {
    jbInit();
    sessionVideo.publishSession(); <<<<<<<ERROR OCCURS HERE
    catch (Exception e) {
    e.printStackTrace();
    I checked my business components by creating a default data form using the data form WIZARD. This worked fine and i found that by removing(commenting out) the code associated with the loginDialogueBox(added by wizard) caused the same error to occur with this data form.
    PLEASE HELP, after all this work i would really like to see this working
    Adam

    William...thanks for the reply....
    Below are details on where the section of the Data form tutorial that i followed, is in help.
    help
    help topics
    Tutorials and sample applications
    tutorials
    Developing the online orders data form client
    creating the data form client
    creating the customer view data form(TASK 3)
    or alternatively the code from my dbInfo class:
    The class has one sessionInfo component: sesionVideoDB
    a rowSetInfo item: rowSetHousehold
    and a find function which is called from a data aware frame which has its textfields bound to the attributes of the rowSetHousehold
    =======================================================================
    package DACVideo;
    import oracle.dacf.dataset.*;
    import oracle.dacf.dataset.connections.*;
    * A Class class.
    * <P>
    * @author Adam Maddox
    public class dbInfo extends Object {
    SessionInfo sessionVideoDB = new SessionInfo();
    static RowSetInfo rowSetHousehold = new RowSetInfo();
    static AttributeInfo IdrowSetHousehold = new AttributeInfo(java.sql.Types.NUMERIC);
    AttributeInfo ChainIdrowSetHousehold = new AttributeInfo(java.sql.Types.NUMERIC);
    AttributeInfo HomeStoreIdrowSetHousehold = new AttributeInfo(java.sql.Types.NUMERIC);
    AttributeInfo HomeHouseholdCategoryIdrowSetHousehold = new AttributeInfo(java.sql.Types.NUMERIC);
    AttributeInfo ChainHouseholdCategoryIdrowSetHousehold = new AttributeInfo(java.sql.Types.NUMERIC);
    AttributeInfo PrimaryPersonrowSetHousehold = new AttributeInfo(java.sql.Types.NUMERIC);
    AttributeInfo CreateDaterowSetHousehold = new AttributeInfo(java.sql.Types.DATE);
    AttributeInfo DeleteDaterowSetHousehold = new AttributeInfo(java.sql.Types.DATE);
    AttributeInfo HomePhone1rowSetHousehold = new AttributeInfo();
    AttributeInfo HomePhone2rowSetHousehold = new AttributeInfo();
    AttributeInfo AddressrowSetHousehold = new AttributeInfo();
    * Constructor
    public dbInfo() {
    try {
    jbInit();
    sessionVideoDB.publishSession(); <<<<<<ERROR OCCURS HERE
    catch (Exception e) {
    e.printStackTrace();
    private void jbInit() throws Exception {
    AddressrowSetHousehold.setName("Address");
    HomePhone2rowSetHousehold.setName("HomePhone2");
    HomePhone1rowSetHousehold.setName("HomePhone1");
    DeleteDaterowSetHousehold.setName("DeleteDate");
    CreateDaterowSetHousehold.setName("CreateDate");
    PrimaryPersonrowSetHousehold.setName("PrimaryPerson");
    ChainHouseholdCategoryIdrowSetHousehold.setName("ChainHouseholdCategoryId");
    HomeHouseholdCategoryIdrowSetHousehold.setName("HomeHouseholdCategoryId");
    HomeStoreIdrowSetHousehold.setName("HomeStoreId");
    ChainIdrowSetHousehold.setName("ChainId");
    IdrowSetHousehold.setName("Id");
    rowSetHousehold.setAttributeInfo( new AttributeInfo[] {
    IdrowSetHousehold,
    ChainIdrowSetHousehold,
    HomeStoreIdrowSetHousehold,
    HomeHouseholdCategoryIdrowSetHousehold,
    ChainHouseholdCategoryIdrowSetHousehold,
    PrimaryPersonrowSetHousehold,
    CreateDaterowSetHousehold,
    DeleteDaterowSetHousehold,
    HomePhone1rowSetHousehold,
    HomePhone2rowSetHousehold,
    AddressrowSetHousehold} );
    sessionVideoDB.setAppModuleInfo(new ModuleInfo("VideoDB", "VideoDBModule"));
    sessionVideoDB.setConnectionInfo(new LocalConnection("VIDEO_SYSOP"));
    sessionVideoDB.setName("sessionVideoDB");
    rowSetHousehold.setQueryInfo(new QueryViewInfo(
    "HouseholdView5",
    rowSetHousehold.setSession(sessionVideoDB);
    rowSetHousehold.setName("rowSetHousehold");
    public static int find(String id)
    show("====================value recieved===================");
    show(id);
    show("===================================================");
    String idColumnName = IdrowSetHousehold.getColumnName();
    StringBuffer query = new StringBuffer();
    if(id.length() > 0)
    query.append(idColumnName + " = " + id);
    show("id found");
    rowSetHousehold.setQueryCondition(query.toString());
    rowSetHousehold.executeQuery();
    int rowQty = rowSetHousehold.getRowsetAccess().getRowCount();
    show("ROW QUANTITY =" + String.valueOf(rowQty));
    return rowQty;
    }//end find
    public static void show(String s)
    System.out.println(s);
    null

  • Creation of SQL query at runtime in Application Module

    jdev 11.1.1.5.0 groups
    here i learned that how to use sql query at runtime http://jjzheng.blogspot.in/2010/11/run-single-query-in-application-module.html
    . but here values are passing are straightly instead of using bind vairiable means
    how to use that.
    can anyone come up with an same example as blog shown
    Edited by: subu123 on Apr 18, 2012 3:15 AM

    can anyone help me..
    i tried like this
    public String xxxyy(String xbu , String xid){
        String sql = "SELECT OPTION FROM xx_NOTES where xx_BU = ? AND xx_id = ? ";
        ResultSet rs;
        BigDecimal payAmt= null;
        try
        rs = getDBTransaction().createStatement(0).executeQuery(sql);
        if(rs.next())
        payAmt=(BigDecimal)rs.getObject(1);
        catch(SQLException e)
            e.printStackTrace();
       return payAmt.toString();
    ava.sql.SQLException: ORA-01008: not all variables bound
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:457)
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:405)
         at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:889)
         at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:476)
         at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:204)
         at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:540)
         at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:202)
         at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:919)
         at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1261)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1419)
         at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1668)
         at oracle.jdbc.driver.OracleStatementWrapper.executeQuery(OracleStatementWrapper.java:432)
         at model.AppModuleImpl.generatenum(AppModuleImpl.java:46)
         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 oracle.adf.model.binding.DCInvokeMethod.invokeMethod(DCInvokeMethod.java:648)
         at oracle.adf.model.binding.DCDataControl.invokeMethod(DCDataControl.java:2142)
         at oracle.adf.model.bc4j.DCJboDataControl.invokeMethod(DCJboDataControl.java:3063)
         at oracle.adf.model.binding.DCInvokeMethod.callMethod(DCInvokeMethod.java:261)
         at oracle.jbo.uicli.binding.JUCtrlActionBinding.doIt(JUCtrlActionBinding.java:1635)
         at oracle.adf.model.binding.DCDataControl.invokeOperation(DCDataControl.java:2149)
         at oracle.jbo.jbotester.panel.MethodPanel$6.actionPerformed(MethodPanel.java:313)
         at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
         at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
         at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
         at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
         at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
         at java.awt.Component.processMouseEvent(Component.java:6289)
         at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
         at java.awt.Component.processEvent(Component.java:6054)
         at java.awt.Container.processEvent(Container.java:2041)
         at java.awt.Component.dispatchEventImpl(Component.java:4652)
         at java.awt.Container.dispatchEventImpl(Container.java:2099)
         at java.awt.Component.dispatchEvent(Component.java:4482)
         at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
         at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
         at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
         at java.awt.Container.dispatchEventImpl(Container.java:2085)
         at java.awt.Window.dispatchEventImpl(Window.java:2478)
         at java.awt.Component.dispatchEvent(Component.java:4482)
         at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
         at java.awt.EventQueue.access$000(EventQueue.java:85)
         at java.awt.EventQueue$1.run(EventQueue.java:603)
         at java.awt.EventQueue$1.run(EventQueue.java:601)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
         at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlCon
    text.java:98)
         at java.awt.EventQueue$2.run(EventQueue.java:617)
         at java.awt.EventQueue$2.run(EventQueue.java:615)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
         at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
         at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
         at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
         at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
    [54] DCBindingContainer.reportException :oracle.jbo.JboException
    [55] oracle.jbo.JboException: JBO-29000: Unexpected exception caught: java.lang.NullPointerException, msg=null
         at oracle.adf.model.binding.DCInvokeMethod.invokeMethod(DCInvokeMethod.java:690)
         at oracle.adf.model.binding.DCDataControl.invokeMethod(DCDataControl.java:2142)
         at oracle.adf.model.bc4j.DCJboDataControl.invokeMethod(DCJboDataControl.java:3063)
         at oracle.adf.model.binding.DCInvokeMethod.callMethod(DCInvokeMethod.java:261)
         at oracle.jbo.uicli.binding.JUCtrlActionBinding.doIt(JUCtrlActionBinding.java:1635)
         at oracle.adf.model.binding.DCDataControl.invokeOperation(DCDataControl.java:2149)
         at oracle.jbo.jbotester.panel.MethodPanel$6.actionPerformed(MethodPanel.java:313)
         at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
         at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
         at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
         at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
         at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
         at java.awt.Component.processMouseEvent(Component.java:6289)
         at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
         at java.awt.Component.processEvent(Component.java:6054)
         at java.awt.Container.processEvent(Container.java:2041)
         at java.awt.Component.dispatchEventImpl(Component.java:4652)
         at java.awt.Container.dispatchEventImpl(Container.java:2099)
         at java.awt.Component.dispatchEvent(Component.java:4482)
         at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
         at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
         at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
         at java.awt.Container.dispatchEventImpl(Container.java:2085)
         at java.awt.Window.dispatchEventImpl(Window.java:2478)
         at java.awt.Component.dispatchEvent(Component.java:4482)
         at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
         at java.awt.EventQueue.access$000(EventQueue.java:85)
         at java.awt.EventQueue$1.run(EventQueue.java:603)
         at java.awt.EventQueue$1.run(EventQueue.java:601)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
         at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
         at java.awt.EventQueue$2.run(EventQueue.java:617)
         at java.awt.EventQueue$2.run(EventQueue.java:615)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
         at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
         at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
         at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
         at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
         at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
         at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
    [54] DCBindingContainer.reportException :oracle.jbo.JboException
    [55] oracle.jbo.JboException: JBO-29000: Unexpected exception caught: java.lang.NullPointerException, msg=null
         at oracle.adf.model.binding.DCInvokeMethod.invokeMethod(DCInvokeMethod.java:690)
         at oracle.adf.model.binding.DCDataControl.invokeMethod(DCDataControl.java:2142)
         at oracle.adf.model.bc4j.DCJboDataControl.invokeMethod(DCJboDataControl.java:3063)
         at oracle.adf.model.binding.DCInvokeMethod.callMethod(DCInvokeMethod.java:261)
         at oracle.jbo.uicli.binding.JUCtrlActionBinding.doIt(JUCtrlActionBinding.java:1635)
         at oracle.adf.model.binding.DCDataControl.invokeOperation(DCDataControl.java:2149)
         at oracle.jbo.jbotester.panel.MethodPanel$6.actionPerformed(MethodPanel.java:313)
         at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
         at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
         at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
         at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
         at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
         at java.awt.Component.processMouseEvent(Component.java:6289)
         at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
         at java.awt.Component.processEvent(Component.java:6054)
         at java.awt.Container.processEvent(Container.java:2041)
         at java.awt.Component.dispatchEventImpl(Component.java:4652)
         at java.awt.Container.dispatchEventImpl(Container.java:2099)
         at java.awt.Component.dispatchEvent(Component.java:4482)
         at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
         at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
         at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
         at java.awt.Container.dispatchEventImpl(Container.java:2085)
         at java.awt.Window.dispatchEventImpl(Window.java:2478)
         at java.awt.Component.dispatchEvent(Component.java:4482)
         at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
         at java.awt.EventQueue.access$000(EventQueue.java:85)
         at java.awt.EventQueue$1.run(EventQueue.java:603)
         at java.awt.EventQueue$1.run(EventQueue.java:601)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
         at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
         at java.awt.EventQueue$2.run(EventQueue.java:617)
         at java.awt.EventQueue$2.run(EventQueue.java:615)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
         at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
         at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
         at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
         at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

  • Application module creation for (web) services

    Hello,
    We are running into stack overflows from ADF BC (BC4J) with oracle.jbo.client.Configuration.createRootApplicationModule. We want to make sure we're doing this right.
    If you have data bound services (e.g. product lookup) and you don't want to put your operation/exposed method in the application module Impl class for clear seperation (unlike ADF toy store sample), is it appropriate to:
    1. Create a Java service class that you will expose as J2EE web service
    2. The method to be exposed will call Configuration.createRootApplicationModule to checkout an app module from pool.
    3. Find the view object, run the query, get the row.
    4. Configuration.releaseRootApplicationModule to check it back in.
    Please share your best practices and recommended approach with us.
    Thanks,
    - Zak

    I'd recommend using our built-in feature for exposing an application module class as a J2EE web service. This will code-generate a class for you that does the AM access correctly.

  • JAAS Authorization - Application Module

    I created a project based on the BC4J technology. The application module is configured for using the security : jbo.security.enforce=Must. This application module is also configured to deploy the user/password.
    When I used this application through a web application, I don't meet any problem.
    If I create a POJO class in the same project as BC4J in which I instantiate an instance in the application module pool, I receive the following message :
    oracle.jbo.JboException: JBO-29000: Unexpected exception caught: oracle.jbo.JboException, msg=JBO-33021: Failed authenticate user null.
    The java class in charge of instantiating the application module pool and get an instance of it works without any problem as soon as the security is not implemented.
    Hereafter you can find the method used :
    public ApplicationModule getApplicationModule()
    try{
    PoolMgr poolMgr = PoolMgr.getInstance();
    this.lg_ApplPool = poolMgr.findPool( this.lg_configPackage + "." + this.lg_configName, // name of the pool
    this.lg_configPackage, // name of the package
    this.lg_configName, // name of the configuration
    null);
    // SessionCookie Creation
    String timeStamp = (new java.util.Date()).toString();
    // for web application, replace timeStamp by ip address of the client
    this.lg_Cookie = lg_ApplPool.createSessionCookie(this.lg_applicationId,timeStamp,null);
    CordaEnvInfoProvider lEnvInfoProvider = new CordaEnvInfoProvider ("xxx","xxx");
    // this.lg_Cookie = lg_ApplPool.createSessionCookie(this.lg_applicationId,timeStamp,null);
    this.lg_Cookie.setEnvInfoProvider(lEnvInfoProvider);
    ApplicationModule lAM = this.lg_Cookie.useApplicationModule();
    return lAM;
    catch(Exception e)
    System.out.println("_CrdAppModulePoolMgr - exception : " + e.getMessage());
    e.printStackTrace();
    return null;
    After Having search quite a long time to find a solution, I have no more idea. The only thing I see now is to forget about Jaas if the application module has not to be used by a Java client not being a JClient (Swing) or a Web application.
    Could you let me know if
    1. jaas works with java client not being Swing or web application
    2. if so, could you give me more information about how to work with BC4J application module and security enforce to Must ?
    N.B.
    POJO Client :
    public class TestAppModulePoolMgr
    private ApplicationModule lg_Am = null;
    private CrdAppModulePoolMgr  lgCrdAppModulePoolMgr = null;
    private ApplicationPool lg_ApplPool = null;
    private SessionCookie lg_Cookie = null;
    public TestAppModulePoolMgr()
    this.lg_CrdAppModulePoolMgr = _CrdAppModulePoolMgr.getCrdAppModulePoolMgr();
    this.lg_CrdAppModulePoolMgr.setApplicationId("CrdGenerationAppModuleId");
    this.lg_CrdAppModulePoolMgr.setConfigName("_CrdGenerationAppModuleLocal");
    this.lg_CrdAppModulePoolMgr.setConfigPackage("CORDA_BSV");
    this.lg_Am = lg_CrdAppModulePoolMgr.getApplicationModule();
    this.lg_ApplPool = lg_CrdAppModulePoolMgr.getApplicationPool();
    this.lg_Cookie = lg_CrdAppModulePoolMgr.getApplicationSessionCookie();
    * @param args
    public static void main(String[] args)
    TestAppModulePoolMgr testAppModulePoolMgr = new TestAppModulePoolMgr();
    }

    Thank you.
    I use SSO authentication to test my application so have no users defined.
    Can I use the test-all user? If so, what is the password?

  • PL/SQL from Application Module instead of Using VO/EO - Violating Standard?

    Hi,
    I have seen product code which Use PL/SQL APIs for committing data (Creation of Records in Table) from Application Module. There is no BC4J (VO/EO) used in this data route.
    Is there any coding standard (document) which says such cases are against Standards.I know there is one Standard saying PL/SQL Based VO is dicouraged in Oracle Apps.
    Thanks
    Joseph

    Vikram,
    Performance depends on the way you are going to make use of pl/sql code. Suppose if you are using pl/sql just for final insert/update with other validations bound to it through a single call, that's fine. But in case you have other multiple calls to pl/sql blocks also for fetching data for display purpose, that's where standard VO's will be more efficient reducing the number of trip for pl/sql calls. So use it only when it is the last way and you need to handle multiple validations with complex data structure.
    As for locking, yes, you might have to take care of locking handling scenario if such a situation happens. But again it depends on what's your business logic and how is your data being processed.
    --Shiv                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • BAPI creation versus function module creation...

    Hi,
    I know the difference between BAPI and simple function  module. I have also created custom function module.
    But I have not worked on creation of Custom BAPIs.
    Is there a much differece in creation of function module and BAPI?
    If there is please throw some light on main differences or stepwise differences when I create BAPI versus function module ?
    Thanks.
    Regards,
    Tushar.

    Hai Tushar
    what is BAPI?
    BAPI stands for Business API(Application Program Interface).
    I have answered this question before..
    A BAPI is remotely enabled function module ie it can be invoked from remote programs like standalone JAVA programs, web interface etc..
    You can make your function module remotely enabled in attributes of Function module but
    A BAPI are standard SAP function modules provided by SAP for remote access. Also they are part of Businees Objest Repository(BOR).
    Please check out this thread..
    Re: bapi
    Also refer to the following links..
    www.sappoint.com/abap/bapiintro.pdf
    www.sap-img.com/bapi.htm
    www.sap-img.com/abap/bapi-conventions.htm
    www.planetsap.com/Bapi_main_page.htm
    www.sapgenie.com/abap/bapi/index.htm
    Checkout !!
    http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html
    http://techrepublic.com.com/5100-6329-1051160.html#
    http://www.sap-img.com/bapi.htm
    http://www.sap-img.com/abap/bapi-conventions.htm
    http://www.sappoint.com/abap/bapiintro.pdf
    Java Connector(JCO) can call not only BAPI's but also the function modules which are remotely enabled..
    BAPI's as i said earlier are remotely enabled function modules..
    Hence, JCO can call also BAPI's(n not only BAPI's as u mentioned).
    Thanks & regards
    Sreeni

  • HOW TO: Connect web service (remote application module) to existing model

    Hello.
    I have J2EE application which displays some data in an applet, which reads them by a web service. I'd like to use persistence and connect with a web service called by applet to my current model set within a session. I tried to pass a session id to web service (to a function of an application module implementation). I wanted to create a new SessionCookie instance with such a session id and application id which are used for web application session (by ApplicationPoolImpl.createSessionCookie() or with custom session cookie factory). But I don't know how to pass a session and application ids to a sessioncookie creation process (ApplicationPool environment). I tried to use custom EnvInfoProvider, which set my properties, but it passes the params after a SessionCookie instance is created.
    Samples ... AppModuleServer - file generated to provide ws functionality. I changed code to use EnvInfoProvider:
    public class AppModuleServer extends Object{
      public AppModuleServer(){}
      public SomeObject[] myCustomFunction(String sessionId){
        AppModuleImpl _am = null;
        String appId="someValue";
        CustomEnvInfoProvider envProvider=new CustomEnvInfoProvider(appId, sessionId);
        try{
          _am=(AppModuleImpl)Configuration.createRootApplicationModule("data.AppModule", "AppModuleLocal", envProvider);
          return _am.myCustomFunction(sSessionId);
        finally{
          if (_am != null)Configuration.releaseRootApplicationModule(_am, false);
    }CustomEnvInfoProvider:
    public class CustomEnvInfoProvider implements EnvInfoProvider{
      private String applicationId;
      private String sessionId;
      public CustomEnvInfoProvider(String applicationId, String sessionId){
        this.applicationId=applicationId;
        this.sessionId=aessionId;
      public Object getInfo(String info, Object environment){
        if(info==null)return null;
        return ((Hashtable)environment).get(info);
      public void modifyInitialContext(Object environment){
        if(applicationId!=null)((Hashtable)environment).put("CookieApplicationId", applicationId);
        if(sessionId!=null)((Hashtable)environment).put("SessionId", sessionId);
      public int getNumOfRetries(){
        return 2;
    }Does anybody knows how to pass information from custom EnvInfoProvider just before a SessionCookie is created (e.g. how to run modifyInitialContext() function). Or another way how to pass these information from a web service base function into ApplicationPoolImpl instance. E.g., there is parameter "properties" whithin a createSessionCookie method of ApplicationPoolImpl, which is null during calling. Is it possible to pass there some additional information?
    Thanks for any suggestions.

    Use the Web Service Proxy wizard in JDeveloper to create a class that calls your Web service, and then call this class from code in your AM.
    http://docs.oracle.com/cd/E16340_01/web.1111/b31974/web_services.htm#CJAHGIEF

  • How many application modules do I have to have ?

    Sir,
    In my JClient application, there is a model project which contains view objects for two forms. One of the forms is opened witin the other form.
    If I include all view objects in one application module, will the two forms share one database session and be committed at the same time?
    If I want to open these two forms in different database session, how can I get it?How many application modules should I create? And how to arrange these application modules?
    Thanks
    Stephen

    Frank,
    Now I create two application modules for the two forms in the same model project, and one of the forms has a JCLoginDianlog created, the other one has no JCLoginDialog. And I unselect the deploy password checkbox for the connection.
    How can I open the second form within the first form without the second login procedure? I mean, can I keep the first login credential and use it for the second form login?
    In Forms Builder, the end user need to login once when opens the main window, and don't need login when opening subcequent forms. Can Jdeveloper do that?
    Thanks
    Stephen

  • Setting v$session.program property in application module config

    How can I set the v$session.program property in the AM config, so that when a new connection is created, the v$session.program field is documented with the property value.
    I added the following in JClient JCLoginDialog:
    ((Hashtable)connEnvironment).put("v$session.program", "my program name");
    I traced the V$SESSION TABLE:
    The added connection has "my program name" in the program field but if I open other application module instances, the new connections have an empty v$session.program field.
    I suppose that a property must be added to all application module configurations.
    Can somebody help me on this one?
    The v$session.program field is helpful when sessions must be killed.
    Thanks
    Fred

    I don't believe there is a built-in mechanism for that.
    But you can easily do it yourself. In you AM class:
    public void prepareSession( Session session ) {
        super.prepareSession( session );
        setDatabaseClientInfo( Bc4jConstants.APPLICATION_NAME );
        setDatabaseModuleInfo( moduleInfo );
    }And then:
      public void setDatabaseClientInfo( String clientInfo ) {
        try {
          this.getTransaction( ).executeCommand(
            "BEGIN dbms_application_info.set_client_info('" + clientInfo + "'); END;" );
        } catch( Exception e ) {
          // uncritical error
          log.warn( "Error setting the database client info: " + clientInfo, e );
      }and
      public void setDatabaseModuleInfo( String moduleInfo ) {
        if( moduleInfo != null ) {
          try {
            this.getTransaction( ).executeCommand( "BEGIN dbms_application_info.set_module('"
              + moduleInfo + "', NULL); END;" );
          } catch( Exception exception ) {
            // uncritical error
            log.warn( "Error setting the database module info: " + moduleInfo, exception );
      }In a similar fashion you can set the client identifier. We use the moduleInfo to identify the module of the session. The client info helps us to identify the application.
    Sascha

  • Nested Application Module Performance

    What are the implications of nesting application modules? I am nesting them in such a way that they are defined at design-time and used by calling findApplicationModule(String) on the root ApplicationModule. Could there be any significant overhead accessing one nested app mod in this way as opposed to going to the desired app mod directly? Or is there anything else to watch out for with this type of design? I haven't had any trouble so far but my project is not too large yet.

    For example, I have three ApplicationModule objects.
    RootModule, Module1, and Module2. By nesting Module1
    and Module2 under RootModule, I can use either once I
    have an instance of RootModule by calling
    findApplicationModule(String name). This is useful
    when I want to do things inside both Module1 and
    Module2 and still use the same connection and
    transaction context.
    If I only want something out of Module1 during a
    request, would it be advantageous to ONLY create
    Module1 directly and bypass my RootModule?
    Meaning this:mod1Am =
    Configuration.createRootApplicationModule("Module1","M
    dule1Config");
    mod1Am.myCustomOperation();As opposed to
    this:rootAm =
    Configuration.createRootApplicationModule("RootModule"
    "RootConfig");
    mod1Am = rootAm.findApplicationModule("Module1");
    mod1Am.myCustomOperation();
    Nick:
    There are advantages to creating Module1 directly. It would be that you don't create unnecessary objects (in your case, you would avoid unnecessary creation of Module2").
    However, I would make the following side comment: from your message, it sounds like you would create an AM for every request and remove it at the end. Did you consider using AppModule pool? AM pool would be better than create-remove because AM pool can keep around a number of root AM instances and manage resources for you. This way, you don't have to create any AM for each request. AM pool is also able to support stateful operations with excellent scalability.
    Thanks.
    Sung

Maybe you are looking for

  • .Mac Web Gallery crashes Safari

    I am replacing our old iWeb photo pages with a .Mac Web Gallery. I've got 63 Albums that I've turned into galleries. When I try to load the main gallery page I get this error from Safari: *A script on the page ".Mac Web Gallery -" ( http://gallery.ma

  • LINUX : Webcam mic non-functional on Toshiba Satellite T215D-S1150

    I've been trying to get the webcam mic on my Toshiba Satellite T215D-S1150 notebook/netbook to work in Linux Mint 9 Isadora KDE 64-bit to no avail. My model has a Realtek ALC269 audio chipset combined with an ATI southbridge ( ATI Technologies Inc SB

  • For those with 3G...

    How often do you find yourself connecting to the service and when? ie on train, at friends house? Im trying to decide whether its worth it to buy the 4G model considering the number of wifi hot spots available these days.

  • Are their any tutorials out  there for begginers of Logic Pro 7...

    I'm really starting to feel kinda stupid with this logic pro 7 program somebody please help me! if not i'm realling thinking about selling my laptop and logic pro 7 to get a akai mpc 2500..... holthiphopminister

  • Permission Madness

    Hi, I'm running 10.5.1 on a Mac Pro and am having trouble with Permissions. If I try to delete a file, I'm prompted to enter the Admin password. If I do, the file moves to the Trash. If I don't it doesn't. If I look at a Folder's 'Info', the Permissi