BUG: Can't create BC4J Application Module Configurations

Hello,
I'm using JDev 9.0.3.1 with Win2K and WinXP. There seems to be a bug in the BC4J Application Module Configuration Manager:
It seems to be impossible to create a new BC4J Application Module Configuration with the Configuration Manager of a BC4J Application Module. I can copy an existing AM configuration, but I can not rename it. Clicking on the OK Button in the Configuration Manager simply does nothing.
A work around seems to be to open bc4j.xcfg in any text editor, copy an AppModuleConfig element, save xcfg, in JDev remove the project form the workspace, readd it to the workspace (some caching issue of jdev?). Then the new AM config is there and can be modified.
In JDev 9.0.3 the Config Manager seems to work fine.
Regards
Stefan

The bug is mentioned in metalink bug 2849146.

Similar Messages

  • Creating an application module in a Java class

    Hi everyone,
    I'm trying to create an application module from a normal Java class where I don't have access to any HttpSession objects.
    I tried to use the method in the documentation
    appMod = Configuration.createRootApplicationModule(
                        "full.class.Name",
                        "ConfigurationName");
    It's not working though, complaining that it can not find the configuration file which it's trying to locate at full/class/common/bc4j.xcfg.
    This file exists at the same path in the BC4J project which this project has a dependency on in the Project Settings dialog.
    Is this the right way to create an application module? Can someone please provide a reference to an example.
    Thanks

    Thanks Frank, but this example is about a stand-alone application, my problem occurs with an application hosted on the application server.
    I did more experiments and came up with some ideas but unfortunately, I hit a dead end.
    I thought that in order to work around the fact that I cannot set the class loader of the timer, I could change the class loader of the running thread before I create the timer as follows:
    Thread.currentThread().setContextClassLoader(
              this.getClass().getClassLoader());
    I thought this would give me a SecurityException for sure, but strangely enough it worked perfectly.
    Now, all I needed was to move this code from the JSP to my listener. Unfortunately, it didn't work in the listener, also a test that I did in the JSP to make sure that the classloader before and after the above statment is different, showed that in the listener, the classloader of the thread is the same as the one used to load the listener class:
    System.out.println(Thread.currentThread().getContextClassLoader()
              .equals(this.getClass().getClassLoader()));
    I thought, maybe this is a listener thing, but if I do it in the init() method of a servlet that I could specify to load on startup, it could work, but still, it didn't.
    I cannot understand, why is it that the only correct class loader is the one used to load the compiled JSP class?!
    Does anyone have any other ideas?
    Thanks

  • 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?

  • 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

  • Application Module Configuration Properties file?

    Hi,
    Any body knows where could i find the Application Module Configuration Properties file on the disk.
    (This properties on wizard are appeared when we right click on application module and select configuration...)

    Curt,
    Thanks for your direction. That link is vary useful to be familiar with the AM configuration setting.
    Frankly, during last few months I was extremely busy to develop JSP pages. And didnt study much about AM But now that we are close to move the application to production I faced unacceptable problems. Recently I started to read your/and other folks treads to get more familiar with AM.
    Here is some of the problem i faced, which i think are AM related:
    1-The application speed goes down as soon as more than 2-3 browser(user) work with the same application(most probably I have memory leak).
    2-Some times I received following error when tried to load a JSP page in the application:
    Error Message: oracle.jbo.PCollException: JBO-28020: Passivation error on collection TXN, node id -1 void
    3-I faced following error when I tried to work with two applications in one or even two browsers:
    Error Message: JBO 30004: An application module that was not checked out was checked in...
    So, please let me know your idea on those and/or any point that I have to check.
    By the way, I am still on JDev9i-Beta and I accepted all default setting at the time I created AM . but the state of each page explicitly defined at the page level(mostly stateful, but on some of the pages i didn't mentioned the state which by default is stateless).
    Thanks.

  • Can we create multiple application with single MSI(or Same MSI) in biztalk admin console ?

    Can we create multiple application with single MSI(or Same MSI) in biztalk admin console ?
    My client requirement is process 100 files  from biztalk with in 5 min ,actually it is taking 20 min .
    So I decided to created same instance of the application with multiple time in BTS admin console ,as I understand biztalk admin console never allow to install same
    schema’s with multiple  time .
    Any help can be  appreciate ..

    BizTalk will automatically process multiple messages on separate threads so you may need to tune your system. The following link should get you started:
    http://social.technet.microsoft.com/wiki/contents/articles/7801.biztalk-server-performance-tuning-optimization.aspx
    Another possibility is to set the Batch Size property on your receive location if the adapter uses batch size to determine how messages are picked up.  As an example, it you want  the MSMQ adapter to immediately pick up messages and start
    to process them, set the batch size to 1.
    You may also need to distribute the processing across multiple BizTalk servers by installing BizTalk on additional servers and joining the existing BizTalk group.
    David Downing... If this answers your question, please Mark as the Answer. If this post is helpful, please vote as helpful.

  • Can we create the Application name starting with Numerics

    Hi All,
    can we create an application name stating with number like 1234Samsung.
    Also can we use the special characters between them.
    Also are there any rules for creating database names other than maximum 8 characters limit.
    Regards

    Hi,
    1. You can create starting with numerics, 123samsu.
    2. samsung cannot complete ,the know reason is exceeding 8
    Sandeep Reddy Enti
    HCC
    http://hyperionconsultancy.com/

  • How can I create an application in MSVC 6.0 to access my FieldPoint modules with CVI 5.0 libraries?

    I have an application in CVI 5.0 that works. I am trying to export that so I can develop in MSVC. I need none of the UI provided in CVI, all I need are the simple FieldPoint commands provided in FieldPoint.obj. I have been stumped on this for weeks. I would write my own OPC client but the interface isn't even documented on what commands I would send if I did have an interface. I would prefer just to use the CVI libraries in MSVC 6.0. When I call the FP_Open function the program crashes with an RtlSizeHeap error.
    Thanks,
    Chad

    In theory, creating a dll that encapsulates the FieldPoint functions should work in MSVC. However, National Instruments has not tested MSVC interface, nor have we publicized that this type of setup will work, therefore making support unavailable. The other reason for why we do not offer support of FieldPoint in MSVC is that we have not seen a demand for such an interface. Therefore, I recommend that you create an OPC Client that communicates with the FieldPoint OPC Server. One example of such an OPC Client in MSVC is to use Datasockets, found in ComponentWorks++. You can find this example at the following web site:
    http://zone.ni.com/devzone/devzoneweb.nsf/opendoc?openagent&8FEAB5F73CFB68278625683A000B06ED&cat=7CDA3E51FEFC4AA2862568B80071A1E2
    If you are using the
    serial network module (FP-1000/1001), you can communicate with the FieldPoint modules using the Optomux protocol. For a complete listing of the Optomux commands refer to the FP-1000/1001 Programer Reference Manual located at the following web site:
    http://digital.ni.com/manuals.nsf/caba5d53e9b015a186256793004eebb7/bf97516ca18eee728625665e0063594e?OpenDocument
    Best Regards,
    JohnM

  • Application Module Configuration

    Hello,
    I'm trying to deploy an ADF application in which I'm using the model MVC. I want to put the Model in a different AS than VC. The jdeveloper documentation says that I can create a remote configuration by creating a new configuration selecting "Remote" in the Middle Tier Server Type section, but in that section just appears "Local". Do you know if there is some other think that I should do?
    Thanks

    Hi,
    <Q>Assuming 2 and 3, which takes presidence the Enterprise Manager's DSA settings or the connection pool setting on the Application module?</Q>
    <A>The DSA settings. BC4J's connection pool settings only apply if the BC4J connection pool is being used. The BC4J connection pool is not used if a JNDI JDBC datasource has been defined in the ApplicationModule configuration. In 9.0.3 the BC4J Configuration editor tries to make this clearer by disabling the BC4J connection pool parameters when a JNDI JDBC datasource has been defined.
    The jbo.doconnectionpooling parameter name is a bit misleading. This is actually an ApplicationPool parameter which determines whether or not ApplicationModule connections should be released upon ApplicationModule release. It does not actually determine if JDBC connections are cached -- connection caching is left to the datasource implementation.
    </A>
    <Q>Assuming 1 and 3 how do I predict which settings DSA's connection pool will be using at run time?</Q>
    <A>DSA's connection pool will always be using the settings defined in the DataSource definition. BC4J's connection pool settings will not have an effect upon the DSA connection pool implementation -- BC4J's connection pool settings are relevant to the BC4J connection pool implementation only.</A>
    Hope this helps.
    JR

  • Can not extend an application module

    I have been trying to extend an application module in AP. At first when I created the new am and clicked on the extends button the window did not include any of the payment modules, just the ones from the tutorial. I tried a bunch of things to get the payments module (PsrAM) to appear in the window. I finally changed the path for an application module in the Base Classes screen to oracle.apps.ap.payments.psr.server.PsrAMImpl. Now it appears in the window for selection however, when I select it I get the message: Unable to extend from this object. Application Module oracle.apps.ap.payments.psr.server.PsrAM has an invalid view instance TemplateFullVO1. The code was copied right from the server and I can run the application in jDeveloper so I doubt that it is actually invalid.
    First was I right in changing the base classes to point to it? And if I should not have done that then how do I get the am to appear on the screen to extend from.
    Second, do I need to fix that before I worry about the error message?
    Glad for any help you can give me.

    Dennis
    1) when you try to extend any file you should get the calls files from sever which releated to your extend file and also placed in your jdev myclass folder.
    2) in myprojects folder create your custom path placed your java files (which you get class files from server you need to convert to java those files need to place).
    then you falow the steps bellow.
    - Identify the requried AM for extension
    - download all the requried class & xml files from server
    - configure the JDev in local PC for extension
    - create new AM, which extends the existing AM
    - do the requried changes in AM java file. (Override the methods in new AM for functionality change)
    - specify the subtution for new AM & existing AM in project .jpx file
    - compile the newly created java files to class files
    - copy .class & .xml files back to server as per the package strecture
    - import the .jpx file to server MDS repository
    - test changes
    please let me know if any required.
    Regards,
    Chandra

  • Application module configurations

    Hi
    When I right click on an application module and choose Configurations... there are two configurations for a given application model (for example AppModuleLocale and AppModuleShared) in the manage configurations dialog. I couldn't find anything about the usages and differences of these two configurations on the net. Would you please tell me about this?
    Cheers,
    Ferez

    These are the two configurations which are created by default by the framework. The 'local' configuration is for normal use as a web application with multiple users accessing the application. The 'shared' configuration is a special use case where the application module is shared by multiple other application modules, e.g. when the data accessible via the shared application module is quasi static in nature. This kind of application module is often used for look up data.
    If you check the 'Pooling and Scability' parameters of the two configurations, you'll notice the difference in the 'MaxPoolSize' parameter. For 'shared' application modules this parameter is set to 1, as there are no changes in the data expected and the same application module can be used for all queries.
    Timo

  • Getting JNDI name from application module configuration

    How to programmatically get JNDI name of the data source, specified in the bc4j.xcfg, using application module object or oracle.jbo.client.Configuration, or whatever?

    im sorry for interupting this thread. i have a question for Vinay. Actually im watching this thread bcoz i too have the same question.
    Vinay, what imports is to be added for this.None, if you are using ADFbc.
    The method is available in your ApplicationModuleImpl (i.e. the Java Impl for your AM).
    Here's the 11.1.1.5 javadoc:
    http://docs.oracle.com/cd/E24001_01/apirefs.1111/e10653/oracle/jbo/client/remote/ApplicationModuleImpl.html#getSession__
    im using Jdev 11.1.1.5.0 the statement is : System.out.println("Data Source Name"+getSession().getEnvironment().get("JDBCDataSource"));
    Its showing getSession() method not found.
    Any help???Where did you write that statement? It should work in the AMImpl as the javadoc shows....

  • Sharing a BC4J application module amongst sessions

    Is there any method of sharing an application module amongst many sessions. Take BC4J/JSP on a single web server. We have a considerable amount of static lookup data that rarely changes and it seems daft to have to store this in the entity/view cache for every application module (one per active session).
    If we have a 100 sessions running I don't won't to store the lookup data 100 times. The smaller the session memory footprint the better.
    Anyone got any ideas?

    Hi,
    In 9.0.5 there is a property, "jbo.ampool.isuseexclusive", that may be used to configure this behaviour for an ApplicationPool.
    The summary is that when this property is false SessionCookie.useApplicationModule requests do not return an ApplicationModule that is reserved exclusively for that SessionCookie. Instead the AMs in the "intial pool" are shared by all SessionCookies that are using that pool.
    The reason that this is not formally documented is that it will not work with the declarative binding layer.
    Though BC4J itself is designed to be threadsafe you could still get race conditions on the default iterators. Imagine two threads that are looping through the rows of the default RSI of a deptVO in an unsynchronized block and, consequently, interleaving next calls.
    This is not an issue for programmatic clients as long as each thread of control instantiates their own RSI for access, simply does not use RowSetIterators, or implements synchronized, re-entrant use of an RSI.
    Please see the documentation for examples of developing a programmatic client that uses the pool APIs directly.
    Hope this helps,
    JR

  • Creating Root Application Module

    Hi,
    I'm trying to instantiate a root application module from another root application module,
    that imports the first as a library jar file.
    In the "Oracle ADF Model and Business Components API Reference" I have found the following sample code:
    java.util.Hashtable env = new java.util.Hashtable();
    // Add environment entries into env...
    javax.naming.Context ic = new InitialContext(env);
    String defName = ...;
    oracle.jbo.ApplicationModuleHome home = ic.lookup(defName);
    oracle.jbo.ApplicationModule am = home.create();
    but I don't understand how to initialize the 'env' variable.
    Can I have other samples and suggestions?
    Arturo

    Try something like this:Hashtable prop = new Hashtable();
    prop.put(Context.INITIAL_CONTEXT_FACTORY, "com.evermind.server.rmi.RMIInitialContextFactory");
    prop.put(Context.PROVIDER_URL, “opmn:ormi://<server>:<container>/<application>”);
    prop.put(Context.SECURITY_PRINCIPAL, “user”);
    prop.put(Context.SECURITY_CREDENTIALS, “password”);
    javax.naming.Context ic = new InitialContext(prop);You have to fill in <server> <container> and <application>.
    Timo

  • Can not create an Application Component on SAP R/3 system

    I have a source as SAP R/3 ( ECC 6.0 ) and Target as SAP BW 7.0
    a)Log on to SAP BW 7.0 and used  the “ID3CLNT400”  source system ,  by using  Modeling --
    > Source System  --  choose “Customizing Extractors”  from the context menu of the source system “ID3CLNT400”
    In the transaction  SBIW  on the SAP Source system , choose  the Business Information Warehouse -- > Post Processing of DataSources
    &#61550;     > Edit DataSources and Application Component Hierarchies.
    Choose the “IMG Activity “ Here , I am getting one warning.
    "NO Valid Application Component Exists"
    When I hit the continue button .
    Here when I create an Application Component and “SAVE”  the changes, I am getting the following error.
    Package "Z_Train" doesnt exists. Chose "Display Object " or "Cancel"
    Because of this , I couldn’t creat an Application component and also couldnot load any thing on the SAP BW side. Also , I am no way connected to the "Z_TRAIN" Package

    can u pls tell me how u solved it
    I am working on  Production system  when I go to rsa5 it displaying the msg
    No valid application component hierarchy exists
    Message no. R8053
    Diagnosis
    Currently no application component hierarchy ("APCO_MERGED", database table RODSAPPL and RODSAPPLT) exists in the system. This is required in BW so that the DataSources can be displayed correctly in the source system tree.
    Procedure
    Copy the application component hierarchy from the Content using transaction RSA9.
    In development system I went to RSA9 & transferred the application componet then its asks or pkg name I have given the pkg  name also before use the datasrcs , I have transported the same thing to production before transporting the datasrcs but in production the application component herarachy did not get transported I think that why its giving the msg No valid application component hierarchy exists but my datasrcs got transported ,pls suggest me what has to be done
    Should I import the same request in to production again
    Or shall I run rsa9 again & transfer the application component hierarchy again & transport it to production id I do this will already transported datarscs have any effect in production

Maybe you are looking for

  • Can two Iphones have the same account/email address?

    Can two iphones have the same account/email address? I bought two phones-one for my wife and the other for myself. They are both under the same account /itunes account /email address-Would this cause a conflict with the two phones?

  • Launchctl ignores parameters in given launchd.plist, doesn't pass arguments

    *Here's my plist:* <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Debug</key> <true/> <key>ExitTimeOut</key> <integer>0</

  • Computer clock problem or is it AstroTimes v2.1.2

    For some reason, my AstroTimes local standard time (LST) differs from its selected location by 36 hours 36 minutes. For example, the LST for Melbourne Australia should be 1715 hours 04JAN, but the time displayed in AstroTimes is 2345 hours 05JAN. The

  • Re importing music will i lose artwork

    for some reason i have a lot of duplicates of my music in i tunes. I know I can delete them manually but i have 30GB of music and it would take a while. I have all my music on an external back up drive as well. If i delete my library and re import it

  • How do i uninstall firefox from my pc

    i tried to uninstall dut it didnt