Using remotable Application Modules

I deployed an Application Module to JServer.
How can i use this remotable AM like an ordinary AM or can anyone tell me where i can
find documentations about oracle.jbo.common.remote.ejb.RemoteApplicationModule ?
thanx Tom

Tom,
The class you mention is one that we use internally, so we do not provide source or documentation for it.
See the online help topic:
User Guides
Developing Business Components
Deploying Business Components
Programming the Client Interface
for assistance with your other question.

Similar Messages

  • Use of application module pool and ADF Busines Components

    Hi to all;
    Lets suppose an web application with about 10 CRUD forms and 15 to 20 reports or forms just to query and show data;
    That's clear to me, all the advantages of using App modules pool.
    But for that reports ..... Just an Read only and Forward Only data ?
    I was wondering, if it will be more effective and lightweight if we just take an JNDI JDBC connection query data and show it.
    This imaginary application will make use of application module pool to provide that 10 CRUD web forms and in other hand, will have for reports,JNDI data sources;
    What are your opinion about having this two architectural approach working together in one application ?
    Very thanks;
    Marcos Ortega
    Brazil;

    Hi Deepak;
    BC4J in my opinion is great and i am proud to share this opinion with all of you;
    As a meter of fact, i post this thread to help me better understand BC4J architecture.
    I think that my doubt main point is ...
    Are application modules pool's life cycle an extra work , when the job is just to read and show data ?
    Perhaps, an document about statefull and/or stateless application service release, help me;
    IMHO;
    cached data most of the time must to be discarted for reports, always we want to query database directly, View's object ClearCache() method would be called to reports.
    I think that it's different, when we are talking about sequent requests when we need to span the session, views and entities states.
    Forwards Thanks;

  • Remotable Application Module

    Hello,
    i try to make an existing application module remotable:
    Application Module Editor -> Remote -> EJB Session Bean -> Local Configurations -> Edit -> Application Module -> Middle Tier Server Type
    In the Middle Tier Server Type select-box i can't select something else than Local. In Help Content you have also remote types like Oracle9i EJB or WebLogic EJB. How can i choose Oracle9i EJB as Middle Tier Server Type?
    JDeveloper Version: 10.1.2.0.0 (Build 1811)
    Application: ADF Toy Store, (http://www.oracle.com/technology/products/jdev/collateral/papers/10g/adftoystore.html)
    Daniel.

    Hi,
    If you have developed custom methods in your Business Components (on your application module, view object, or view row), and you have specified in the respective wizard that those methods should be exported to your client, then depending on your remoteable deployment platform, JDeveloper will generate the client stubs for those methods when you generate your deployment profiles for the app module.
    On the Remoteable page of the App Module wizard, you can specify to have that client stub code generated to a new project, or to an existing client project. By default, they will be generated to a new project named something like deploymentplatformClient.jpr.
    Basically, the only thing you need to be aware of for those files is that they get included with your client code when you deploy your client project. They must be available to your client code at runtime in the deployment environment.
    So, the easiest thing to do is to add these generated files to your client project. When you create a deployment profile for your client project, just make sure to include them.

  • Cluster Remote Application Module

    Is it possible to deploy remote application module in clustering environment (for JClient client application)?
    I try to deploy in two standalone OC4J, but it always failed while migrating ejb session bean to another instance. I put replication="EndOfCall" in orion-ejb-jar.xml, but "VMTermination" get the same error while OC4J is terminated. The error (in client) as follows:
    java.lang.RuntimeException: IOException encountered in end of call migration of StatefulSessionBean
    No errors found in server side, although I run OC4J with -Dcluster.debug=true and -verbosity 10.
    Please anybody help me....I've promised to my user that our application has no single point of failure. With this unresolved issue in ADF-JClient, I think I need to rewrite my application....and starting from zero :(
    thanks://yudi

    Repost 1

  • Help!! - Unable to use the Application Module Deployed as Corba Object in Oracle 8i

    I have been able to successfully deploy an Application Module in Oracle 8i but i am un able to get a reference to the Application Module from the database the code used by me is -
    package client;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import java.util.Hashtable;
    import oracle.jbo.*;
    import org.omg.CORBA.*;
    public class Corba8IClient{
    Hashtable env = new Hashtable();
    ApplicationModule appMod = null;
    String theAMDefName = "test/jd/freshJBO.FreshJBOModule";
    public Corba8IClient() {
    System.out.println("Started...");
    // Load the Application Module
    try{
    // Component deployed to Oracle8i CORBA Server.
    // Set up the 8i environment
    System.out.println("Setting up initial Context...");
    env.put(Context.INITIAL_CONTEXT_FACTORY, JboContext.JBO_CONTEXT_FACTORY);
    env.put(JboContext.DEPLOY_PLATFORM, JboContext.PLATFORM_ORACLE8I);
    env.put(Context.SECURITY_PRINCIPAL, "jd");
    env.put(Context.SECURITY_CREDENTIALS, "jd");
    env.put(JboContext.HOST_NAME, "Dev51");
    env.put(JboContext.CONNECTION_PORT, "2481");
    env.put(JboContext.ORACLE_SID, "ORA8I");
    // env.put(JboContext.APPLICATION_PATH, "test/jd/");
    System.out.println("Getting initial Context.");
    Context ic = new InitialContext(env);
    System.out.println("Doing Lookup...");
    ApplicationModuleHome home = (ApplicationModuleHome)ic.lookup(theAMDefName);
    System.out.println("Calling create...");
    // home
    System.out.println("Home Class Name : "+home.getClass().getName());
    oracle.jbo.client.remote.corba.aurora.AuroraApplicationModuleHome am = (oracle.jbo.client.remote.corba.aurora.AuroraApplicationModuleHome)home;
    System.out.println("DefName "+am.getDefName());
    appMod = home.create();
    System.out.println("Setting up connetion from AppMod to database...");
    appMod.getTransaction().connect("jdbc:oracle:thin:jd/jd@dev51:1521:ORA8I");
    }catch(Exception e) {
    e.printStackTrace();
    System.out.println("AppMod full Name "+ appMod.getFullName());
    public ApplicationModule getAppMod(){
    return appMod;
    public static void main(String args[]){
    Corba8IClient c8c = new Corba8IClient();
    after running the output is -
    Started...
    Setting up initial Context...
    Getting initial Context.
    Doing Lookup...
    Diagnostics: Silencing all diagnostic output (use -Djbo.debugoutput=console to see it)
    Calling create...
    Home Class Name : oracle.jbo.client.remote.corba.aurora.AuroraApplicationModuleHome
    DefName null
    oracle.jbo.ApplicationModuleCreateException: JBO-25222: Unable to create application module.
    at oracle.jbo.client.remote.corba.CORBAApplicationModuleHomeImpl.create(CORBAApplicationModuleHomeImpl.java:63)
    at client.Corba8IClient.<init>(Corba8IClient.java:39)
    at client.Corba8IClient.main(Corba8IClient.java:53)
    java.lang.NullPointerException
    at client.Corba8IClient.<init>(Corba8IClient.java:45)
    at client.Corba8IClient.main(Corba8IClient.java:53)
    Corba Object is deployed as -
    ObjectName = /test/jd/freshJBOModule
    Server Class = freshJBO.server.o8.FreshJBOModuleServerO8
    Helper Class = oracle.jbo.common.remote.corba.RemoteApplicationModuleHomeHelper
    The Application Module conatians an entity object and a view object for Dept Table in schema jd(Username -jd, Password -jd).

    Moneesh,
    I believe there is a problem with the way you set the variable theAMDefName. It should be:
    String theAMDefName = freshJBO.FreshJBOModule";
    Then you need to reinstate the line you commented out, to set the application path (but remove the trailing / from the path, as shown):
    env.put(JboContext.APPLICATION_PATH, "test/jd");
    If that doesn't work, and for future reference, I suggest testing your deployed application module from the Business Component Browser (aka the tester) before trying your hand-coded client. Start the tester, select Oracle8i as the middle tier server type, make sure the other information in the connect window is correct, then click Connect.
    Good luck
    Blaise

  • How to programmatically call remote application module - JDev 10.1.3.3.0

    Hi,
    I've an ADF web application (10.1.3.3.0) deployed onto an OAS server. I'd like to be able to access view objects via the application module of this web app from a simple java class on another server.
    I've created a simple class to query a local application module (included in the same project as the simple class). This works fine but I'm not sure how to change this to access an application module when it's remote on another server. Can anyone assist?
    Here is my sample code for querying a local application module/view object:
        public static void main(String[] args) {
            ApplicationModule applicationModule =
                Configuration.createRootApplicationModule("com.almac.model.common",
                                                          "AppModuleLocal");
            try {
                ViewObject eventList = applicationModule.findViewObject("SipEventsView1");
                eventList.executeQuery();
                while (eventList.hasNext()) {
                    Row event = eventList.next();
                    System.out.println("Event Name: " + event.getAttribute("EveName"));
            } catch (JboException e) {
                System.out.println(e.getMessage());
            } finally {
                Configuration.releaseRootApplicationModule(applicationModule, true);
        }Thanks,
    Paul.

    You can expose an AM as an EJB or Web service to expose them for remote access:
    http://download.oracle.com/docs/cd/B32110_01/web.1013/b25947/web_services.htm#CJAEEICB

  • 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

  • Using existing Application Modules Entities in web service provider

    Hi, I want to implement a web service provider having a WSDL file and using JAXWS.
    Is it possible to use in input methods of the service, an Application Module or Entities or View Objects that exist in a separate project.
    I want to perform database operations and facilitate transactions using existing ORM mapping of ADF.
    Thanks,
    Ilias Stavrakis

    Yes, it is possible, but you have to checkout and release the ApplicationModules manually. Use the method <tt>Configuration.createRootApplicationModule(...)</tt> of the class <tt>oracle.jbo.client.Configuration</tt> to checkout modules, and use the method <tt>Configuration.releaseRootApplicationModule(...)</tt> to release it back to the AM pool at the end of processing.
    See this blog entry http://jobinesh.blogspot.com/2010/04/invoking-applicationmodule-from-servlet.html despite the fact that it is not directly related to Web services.

  • How to use an application module custom method in JSP ?

    Hi,
    "TestAM" is an Application Module in which i added a method "TestClient()".
    in a JSP page i have :
    <jbo:ApplicationModule id="am" configname="TestAMLocal" releasemode="Stateful" />
    <jbo:DataSource id="ds" appid="am" viewobject="TestView" rangesize="3"/>
    <%
    My question is how to call the method "TestClient()" in my JSP after these 2 Datatags ?
    (i have exported this method so Jdev have generated the interface "TestAM.java")
    %>
    Thanks for help

    Here is how I did it in my app:
    <jbo:ApplicationModule id="am" configname="TestAMLocal" releasemode="Stateful" />
    <jbo:DataSource id="ds" appid="am" viewobject="TestView" rangesize="3"/>
    <%
    TestAM am2 = (TestAM) TestAM.useApplicationModule();
    am2.TestClient();
    %>
    Hope this helps.

  • Using an Application module's customised Function in JSF

    Dear All
    I wrote a function in the application module with the return type of MAP.
    this function has input parameters. when i try to access the return in EL for value element of my page components, i am always face the NULL.
    but when i deal with the return value in tho code, there is no problem.
    On the other hand, if the function does not have any input parameter, the EL works correctly.
    Can anyone help me with this problem.
    and one more thing. the function is executes every time the page is loaded but i just want it to be executed after i click a button. this means that the return parameter has already the value i need before i execute the function. it seems to be executed automatically at the start of the page loading. what should i do to prevent the execution?
    Thanks for helping me

    Expose your method. Drag your method from your DataControl onto your page and choose for a 'Form'.
    That way, you will get a form with some inputfields (for the parameter(s)) and a submit button.

  • Determine all entity associations used in application module?

    Hi,
    ADF 11.1.1.2.0, ADFBC.
    I want to create a JUNIT testcase to loop through all entity associations and compare them with the relations in the Oracle database.
    to get all view objects of the AM I use following method:
    am.getViewObjectNames(true,true);
    How to get all entity associations used in an AM?
    regards
    Peter

    Hi,
    did you try
    View Object --> Entity --> EntityDefImpl --> getAssociationDefImpls() ?
    Frank

  • DataBindings and Application Module Bean

    Hallo everybody,
    I am working on JDev 10.1.3.4 and Oracle Application Server 10.1.3.4.
    I developed an 'application module' and I maked it as remotable using 'EJB Session Bean' option;
    then I deployed it on the AS.
    I know how to call remote application module by code in a JClient application ([thanks to a metalink note|https://metalink2.oracle.com/metalink/plsql/f?p=130:14:6076423513290714654::::p14_database_id,p14_docid,p14_show_header,p14_show_help,p14_black_frame,p14_font:NOT,309753.1,1,1,1,helvetica|thanks to a metailk note]):
    bq. JUApplication app = new JUApplication(TestClient.getAppModule()); \\ app.setClientApp(DCDataControl.JCLIENT); \\ +     app.getApplicationModule(+)
    I would like to use remote application module function by DataBindings and %PageDef.
    is it possible? how can I do this?
    best regards
    Edited by: user567554 on Dec 17, 2008 5:44 PM

    Hi Frank,
    thank you for reply.
    Could you make an example how to configure my datacontrol for a remote Application Module Connection?
    I'm able to connect to a remote AM deployed to Local Embedded OC4J, but I'm not able to connect to to a remote AM deployed in a remote AS
    I think need change DataControl Configuration Attribute with the appropiate AM Configuration. Probably my AM Configuration is wrong:
    &lt;AppModuleConfig name="AppModuleEmbeddedASTest2"&gt;
    &lt;DeployPlatform&gt;EjbIas&lt;/DeployPlatform&gt;
    &lt;java.naming.security.principal&gt;oc4jadmin&lt;/java.naming.security.principal&gt;
    &lt;java.naming.security.credentials&gt;*ASpwd*&lt;/java.naming.security.credentials&gt;
    &lt;jbo.internal.embedded&gt;true&lt;/jbo.internal.embedded&gt;
    &lt;JDBCDataSource&gt;jdbc/+myConnDS+&lt;/JDBCDataSource&gt;
    &lt;AppModuleJndiName&gt;AppModuleBean&lt;/AppModuleJndiName&gt;
    &lt;HostName&gt;*AS-IPAddr*&lt;/HostName&gt;
    &lt;ApplicationPath&gt;+ejbAM  (My Application Name)+ &lt;/ApplicationPath&gt;
    &lt;java.naming.security.authentication&gt;simple&lt;/java.naming.security.authentication&gt;
    &lt;ApplicationName&gt;model.AppModule&lt;/ApplicationName&gt;
    &lt;ConnectionPort&gt;*+23791 (found in $ORACLE_HOME/j2ee/myTests//config/rmi.xml)+* &lt;/ConnectionPort&gt;
    &lt;jbo.server.internal_connection&gt;jdbc/myConnCoreDS&lt;/jbo.server.internal_connection&gt;
    &lt;/AppModuleConfig&gt;

  • To call webmethods using RFC(Remote Function Module)

    Hi Sap Group.
    i have got a situation on how to call the webmethods using Remote Function Module ,i know that there should be rfc destination created in sm59 already,so can i use the  same existing rfc destination which was used to call webmethods with another scenario in my interface.
    can anybody help me in this.
    regards.
    Varma

    Hi Naina,
    Normally RFC are synchronous, they do have return parameter as export parameter.
    If return parameter is missing then , you can create Wrapper RFC.
    Wrapper RFC:
    It is nothing but you just  create BAPI in SE37 transaction with Return parameter as export parameter and make it remote enabled by clicking on Radio button.
    Under source code, CALL BAPI which XI has to call.
    Thats it!
    I hope this helps.
    Let me know if any help required.

  • How do multiple developers share the same application module

    Is there a suggested method for multiple developers to share the same application module? We have 2 developers that will have EOs in the same directory and would like to know how they can share an application module but do development on different pieces of a project.
    Thanks,
    Paula

    Try using CVS or any other source control system. Still there are some points to think about before doing big projects, because there are many files which are updated by JDEV without knowledge by the developer. This causes many conflicts using a version control system like CVS.
    If you developers both are working on the server part of the application, I suggest using multiple application modules. See this blogs:
    http://radio.weblogs.com/0118231/stories/2005/05/27/howGranularShouldMyApplicationModulesBe.html
    http://radio.weblogs.com/0118231/stories/2005/07/19/nestedApplicationModules.html
    On the client side it depends on which technology you are using (struts, swing, jsf, ...).

  • Single session for all Application Modules

    Hello,
    I've got an application that has several Application Modules. All these modules need some data that are set from time to time. I've written some code that calls getSession().getUserData().put("myData",myData). After this method was called in another Application Module i want to retrieve myData with getSession().getUserData().get("myData"). But the result depends if I use 2-tier or 3-tier. In 2-tie I get myData while in 3-tier I get null. My question is:
    Is there a Session object or any other data instance that could be accessed from all Application Modules for on application instance.
    E.g. I've got two user (A,B) who start my application. Through using my app several instance of Application Modules are created. All Application Modules that are created for the instance of User A should be able to share his user name and some other dynamic data while the Application Modules created for B should have no access to that data.
    Doe anybody know if static data of an Application Module are a possible solution?
    regards
    Joerg

    Hi Joerg,
    I am not 100% sure what you are trying to achieve, and with which version of JDeveloper/ ADF, technologies (JSP, Swing), etc, but I can tell you that I have been experimenting with single session accounts myself within a rich-client Swing environment, as I have experienced Oracle DBA guys who want to control user authentication via Oracle accounts (I have achieved this via the JCLoginDialog mechanism, and a bit of a hack)... Frank Nemphius (sp?) posted something about a white paper coming out on a related subject but I don't know where he is with that.
    Anyway, I managed to do it in a prototype by nesting several application modules within a Root Application Module that was essentially simply a Container for the other application modules. Using this mechanism I was able to bind my root application module to any panel I wanted and it would inherit the roots Session.
    ie. I used many application modules and it only used one Oracle Session.
    However, my reservations -
    1) This solution was not tested robustly!
    2) I doubt this would be ideal for a distributed app with thousands of users - My solution is for a very complex app, with a limited number of users.
    Finally, I cannot confirm this is a great solution - I can only tell you it worked in my prototype, and I am currently awaiting the ADF source - when my company and Oracle can decide what level of support we currently have and need!?!? - what exactly does being an "Oracle partner" mean??? Its all very boring and un-interesting to a Java person like me... ;-)
    Once I have the source I will look at how it actually works and perhaps be able to answer questions like this more definitively. Hmm - I wonder if I could get the Oracle JDBC driver source too?? .... Is it written in C or C++?? I know them too... ;-)
    Cheers........Dean

Maybe you are looking for