BC4J (9.0.3.10.62) on IAS (10.1.2.0.2) is this compatible?

hi
we have an application that runs with the BC4J components (9.0.3.10.62) on an IAS9 without problems but if we try to migrate this app to an IAS10 (10.1.2.0.2) the application goes in an infinite loop while trying to connect to a database and ends with a java.lang.OutOfMemoryError.
is there known issues with this BC4J version like "it never works with IAS10" or any other helpful hints?
thanks

Hello,
This is a very late reply to your query. It's just possible that you need to allocate an appropriate heap size to your JVM. Try setting in your java options for JVM (OC4J), say for example "-Xms256 -Xmx512". This is just my suspicion.
Anthony R.
Manila, Philippines

Similar Messages

  • HOW TO: Set up your application server to run BC4J

    How To set up your application server to run BC4J.
    INTRODUCTION
    A running BC4J application is actually the combination of:
    * Your own application files
    * BC4J runtime libraries
    In order to successfully run your BC4J application in local mode, the first requirement is
    that your application server contains the necessary BC4J libraries.
    This How To describes the steps required to ensure that you have a functional
    BC4J runtime environment installed on your application server.
    Oracle IAS 1.0.2 and Tomcat 3.1 will be used as examples.
    THE BC4J RUNTIME LIBRARIES
    Whatever application server you deploy to, the following libraries
    are required in the following order to be in the classpath.
    BC4J Libraries:
    xmlparserv2.jar
    jdev-rt.zip
    jbojdbcpatch.zip
    connectionmanager.zip
    jbohtml.zip
    jboimdomains.zip
    ordim817.zip
    ordvir817.zip
    ordhttp.zip
    jbomt.zip
    jbodomorcl.zip
    jboremote.zip
    jndi.jar
    jbodatum12.zip
    These libraries can be found in <JDEV_HOME>/lib/
    INSTALLING THE LIBRARIES ON IAS:
    Installing the libraries is simply a matter of copying them to the
    application server's filesystem and adding them to the classpath.
    IAS's classpath can be modified by editing the file:
    <IAS_HOME>\Apache\Jserv\conf\jserv.properties
    In this file you'll find the existing pre-installed BC4J libraries which
    looks like this:
    wrapper.classpath=<IAS_HOME>\Apache\BC4J\lib\ordvir817.zip
    wrapper.classpath=<IAS_HOME>\Apache\BC4J\lib\ordim817.zip
    etc.
    Note! These BC4J libraries correspond to JDeveloper 3.1.1.
    In order to run JDev 3.2 based applications you will have to update these libraries
    to JDeveloper 3.2 production.
    Steps:
    1. Copy (or FTP) the JDev 3.2 BC4J libraries from <JDEV_HOME>\lib to a NEW directory on the
    appserver's filesystem called:
    <IAS_HOME>\Apache\BC4J\newlib
    2. Modify the classpath by editing <IAS_HOME>\Apache\Jserv\conf\jserv.properties.
    Example: (modified classpath entries)
    # New 3.2 BC4J Runtime libraries
    wrapper.classpath=<IAS_HOME>\Apache\BC4J\newlib\xmlparserv2.jar
    wrapper.classpath=<IAS_HOME>\Apache\BC4J\newlib\jdev-rt.zip
    wrapper.classpath=<IAS_HOME>\Apache\BC4J\newlib\jbojdbcpatch.zip
    wrapper.classpath=<IAS_HOME>\Apache\BC4J\newlib\connectionmanager.zip
    wrapper.classpath=<IAS_HOME>\Apache\BC4J\newlib\jbohtml.zip
    wrapper.classpath=<IAS_HOME>\Apache\BC4J\newlib\jboimdomains.zip
    wrapper.classpath=<IAS_HOME>\Apache\BC4J\newlib\ordim817.zip
    wrapper.classpath=<IAS_HOME>\Apache\BC4J\newlib\ordvir817.zip
    wrapper.classpath=<IAS_HOME>\Apache\BC4J\newlib\ordhttp.zip
    wrapper.classpath=<IAS_HOME>\Apache\BC4J\newlib\jbomt.zip
    wrapper.classpath=<IAS_HOME>\Apache\BC4J\newlib\jbodomorcl.zip
    wrapper.classpath=<IAS_HOME>\Apache\BC4J\newlib\jboremote.zip
    wrapper.classpath=<IAS_HOME>\Apache\BC4J\newlib\jndi.jar
    wrapper.classpath=<IAS_HOME>\Apache\BC4J\newlib\jbodatum12.zip
    Note: Make sure to remove or comment out the existing 3.1.1 BC4J library entries!
    To see the changes, you must restart IAS and that's it, your IAS will be updated with
    the JDev 3.2 BC4J libraries which allow you to run BC4J Data Tags among other
    things!
    INSTALLING THE LIBRARIES ON TOMCAT
    As before, this process involves both the copying of the libraries
    and modifying the classpath.
    After copying the BC4J libraries to a path accessible from Tomcat,
    you can modify Tomcat's classpath by editing it's startup script:
    <TOMCAT_HOME>\bin\tomcat.bat (NT)
    <TOMCAT_HOME>\bin\tomcat.sh (Unix)
    Here is a portion of a modified tomcat.bat (on NT)
    rem Add BC4J libraries
    set CLASSPATH=%CLASSPATH%;D:\bc4j_lib\xmlparserv2.jar
    set CLASSPATH=%CLASSPATH%;D:\bc4j_lib\jdev-rt.zip
    set CLASSPATH=%CLASSPATH%;D:\bc4j_lib\jbojdbcpatch.zip
    set CLASSPATH=%CLASSPATH%;D:\bc4j_lib\connectionmanager.zip
    set CLASSPATH=%CLASSPATH%;D:\bc4j_lib\jbohtml.zip
    set CLASSPATH=%CLASSPATH%;D:\bc4j_lib\jboimdomains.zip
    set CLASSPATH=%CLASSPATH%;D:\bc4j_lib\or dim817.zip
    set CLASSPATH=%CLASSPATH%;D:\bc4j_lib\ordvir817.zip
    set CLASSPATH=%CLASSPATH%;D:\bc4j_lib\ordhttp.zip
    set CLASSPATH=%CLASSPATH%;D:\bc4j_lib\jbomt.zip
    set CLASSPATH=%CLASSPATH%;D:\bc4j_lib\jbodomorcl.zip
    set CLASSPATH=%CLASSPATH%;D:\bc4j_lib\jboremote.zip
    set CLASSPATH=%CLASSPATH%;D:\bc4j_lib\jndi.jar
    set CLASSPATH=%CLASSPATH%;D:\bc4j_lib\jbodatum12.zip
    rem Add Oracle JDBC library
    set CLASSPATH=%CLASSPATH%;D:\bc4j_lib\classes12.zip
    Note: I also added the Oracle JDBC library since Tomcat does not have it.
    It is found at:
    <JDEV_HOME>\jdbc\lib\oracle8.1.7\classes12.zip
    And That's It!
    When Tomcat is restarted using this script, the necessary BC4J libraries
    will be in the classpath..
    A follow up How To:"How To Deploy a BC4J JSP Application on IAS and Tomcat"
    will be posted shortly!

    I copied the following files in jserv classpath
    bc4jct.jar
    bc4jctejb.jar
    bc4jdomorcl.jar
    bc4jhtml.jar
    bc4jimdomains.jar
    bc4jmt.jar
    bc4jmtejb.jar
    bc4juixtags.jar
    collections.jar
    datatags.jar
    jdev-cm.jar
    regexp.jar
    share.jar
    uix2.jar
    cabo.war
    classes12.jar
    nls_charset12.jar
    ordim.jar
    ordhttp.jar
    runtime12.jar
    jdev-rt.jar
    xmlparserv2.jar
    bc4j_jclient_common.jar
    webapp.war
    I got this list from Jdev 9031 on-line help
    I also copied the new DataTags.tld file to /webapp directory
    When i run my jsp page i get this error..
    java.lang.NoClassDefFoundError: java/util/TimerTask
         at oracle.jbo.http.HttpContainer.findSessionCookie(HttpContainer.java:693)
         at oracle.jbo.html.jsp.datatags.ApplicationModuleTag.doStartTag(ApplicationModuleTag.java:148)
         at jspapp.odrjsp__html._menu._jspService(Compiled Code)
         at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
         at oracle.jsp.app.JspApplication.dispatchRequest(Compiled Code)
         at oracle.jsp.JspServlet.doDispatch(Compiled Code)
         at oracle.jsp.JspServlet.internalService(Compiled Code)
         at oracle.jsp.JspServlet.service(Compiled Code)
         at javax.servlet.http.HttpServlet.service(Compiled Code)
         at oracle.portal.provider.v1.http.JspRenderer.renderBody(JspRenderer.java:116)
         at oracle.portal.provider.v1.RenderManager.render(RenderManager.java:164)
         at oracle.portal.provider.v1.http.ServletProviderResponse.showPortlet(Compiled Code)
         at oracle.portal.provider.v1.http.HttpProvider.dispatchProviderAction(Compiled Code)
         at oracle.portal.provider.v1.http.HttpProvider.service(Compiled Code)
         at javax.servlet.http.HttpServlet.service(Compiled Code)
         at org.apache.jserv.JServConnection.processRequest(Compiled Code)
         at org.apache.jserv.JServConnection.run(Compiled Code)
         at java.lang.Thread.run(Compiled Code)
    In the JDK 1.3 APi docs, i found that TimerTask was introduced only in JDK 1.3
    Does this mean that BC4J (in jdev 9031) will only work
    with JDK 1.3 or later?
    Thanks for your time.
    Harish

  • BC4J,iAS9i: _pages directory related problem

    Hi all,
    I deployed a BC4J app generated by Jdev to iAS and have the following problem:
    -If I shut down the iAS and restart it the BC4J the webbeans in JSP pages can not load data from Oracle 8i.
    - If I shut it down and delete ../apache/apache/htdocs/myApp/_pages directory under the app directory and restart the iAS everything works just find.
    Is this a known bug ?
    best regards,

    Posting this again in hope of a answer...

  • BC4J on OC4J

    Hi,
    May i know the problem i'm having here. As far as i know the
    class is in at least 7 jars inn the j2ee\home\lib folder.
    11/26/01 8:00 PM defaultWebApp: Servlet error
    java.lang.NoClassDefFoundError:
    oracle/jbo/server/ApplicationModuleImpl
         at java.lang.ClassLoader.findLoadedClass(Native Method)
         at java.lang.ClassLoader.loadClass(ClassLoader.java,
    Compiled Code)
         at sun.misc.Launcher$AppClassLoader.loadClass
    (Launcher.java, Compiled Code)
         at java.lang.ClassLoader.loadClass(ClassLoader.java,
    Compiled Code)
         at java.lang.ClassLoader.loadClass(ClassLoader.java,
    Compiled Code)
         at java.lang.ClassLoader.loadClass(ClassLoader.java,
    Compiled Code)
         at java.lang.ClassLoader.loadClassInternal
    (ClassLoader.java, Compiled Code)
         at java.lang.Class.forName0(Native Method)
         at java.lang.Class.forName(Class.java, Compiled Code)
         at oracle.jbo.common.JDKClassLoader.loadClassForName
    (JBOClass.java:103)
         at oracle.jbo.server.ApplicationModuleDefImpl.loadFromXML
    (ApplicationModuleDefImpl.java, Compiled Code)
         at oracle.jbo.server.ApplicationModuleDefImpl.loadFromXML
    (ApplicationModuleDefImpl.java:541)
         at oracle.jbo.server.MetaObjectManager.loadFromXML
    (MetaObjectManager.java:787)
         at oracle.jbo.server.MetaObjectManager.loadLazyObject
    (MetaObjectManager.java:516)
         at oracle.jbo.server.MetaObjectManager.findMetaObject
    (MetaObjectManager.java:340)
         at
    oracle.jbo.server.ApplicationModuleDefImpl.findDefObject
    (ApplicationModuleDefImpl.java:158)
         at
    oracle.jbo.server.ApplicationModuleImpl.createRootApplicationModu
    le(ApplicationModuleImpl.java:257)
         at oracle.jbo.server.ApplicationModuleHomeImpl.create
    (ApplicationModuleHomeImpl.java:85)
         at
    oracle.jbo.common.ampool.ApplicationPoolImpl.createNewInstance
    (ApplicationPoolImpl.java, Compiled Code)
         at oracle.jbo.common.ampool.ApplicationPoolImpl.checkout
    (ApplicationPoolImpl.java, Compiled Code)
         at
    oracle.jbo.html.jsp.JSPApplicationRegistry.internalGetAppModuleIn
    stance(JSPApplicationRegistry.java:463)
         at
    oracle.jbo.html.jsp.JSPApplicationRegistry.getAppModuleInstance
    (JSPApplicationRegistry.java:377)
         at
    oracle.jdeveloper.html.DataWebBeanImpl.internalInitialize
    (DataWebBeanImpl.java:404)
         at
    oracle.jbo.html.databeans.JSViewCurrentRecord.internalInitialize
    (JSViewCurrentRecord.java, Compiled Code)
         at oracle.jdeveloper.html.WebBeanImpl.initialize
    (WebBeanImpl.java:56)
         at oracle.jdeveloper.html.DataWebBeanImpl.initialize
    (DataWebBeanImpl.java:360)
         at oracle.jdeveloper.html.DataWebBeanImpl.initialize
    (DataWebBeanImpl.java:391)
         at /bc/InvLookupValuesView_RowViewer.jsp._jspService
    (/bc/InvLookupValuesView_RowViewer.jsp.java:46) (JSP page line
    16)
         at com.orionserver[Oracle9iAS (1.0.2.2.1) Containers for
    J2EE].http.OrionHttpJspPage.service(OrionHttpJspPage.java:54)
         at com.evermind[Oracle9iAS (1.0.2.2.1) Containers for
    J2EE].server.http.HttpApplication.serviceJSP
    (HttpApplication.java:5459)
         at com.evermind[Oracle9iAS (1.0.2.2.1) Containers for
    J2EE].server.http.JSPServlet.service(JSPServlet.java:31)
         at com.evermind[Oracle9iAS (1.0.2.2.1) Containers for
    J2EE].server.http.ServletRequestDispatcher.invoke
    (ServletRequestDispatcher.java, Compiled Code)
         at com.evermind[Oracle9iAS (1.0.2.2.1) Containers for
    J2EE].server.http.ServletRequestDispatcher.forwardInternal
    (ServletRequestDispatcher.java:177)
         at com.evermind[Oracle9iAS (1.0.2.2.1) Containers for
    J2EE].server.http.HttpRequestHandler.processRequest
    (HttpRequestHandler.java, Compiled Code)
         at com.evermind[Oracle9iAS (1.0.2.2.1) Containers for
    J2EE].server.http.HttpRequestHandler.run
    (HttpRequestHandler.java, Compiled Code)
         at com.evermind[Oracle9iAS (1.0.2.2.1) Containers for
    J2EE].util.ThreadPoolThread.run(ThreadPoolThread.java, Compiled
    Code)
    Thanks
    Amin

    <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica">quote:</font><HR>Originally posted by Shahbaz([email protected]):
    I am having the same problem. The server cant seem to find my appmodule .properties file. I have included it in a jar file in the J2EE/HOME/LIB folder and also set the classpath to it. Yet i keep getting "JSP Registry could not locate runtime property file:MyProject2_package1_Package1Module.properties" The same exact jar files in IPlanet run just fine. Also, this only happens when i use JSP pages built from using Oracle provided beans. The JSP pages built with TAGS do not pose this same issue. This is propably because on the JSP's that use the beans there is a call: oracle.jbo.html.jsp.JSPApplicationRegistry.registerApplicationFromPropertyFile(session , "MyProject3_package1_Package1Module"); Also when i remove this call from all the pages i still get the same error.
    This project i created just by running the BC4J JSP application wizard - nothing fancy, just scott emp/dept tables. has anyone got this to work? <HR></BLOCKQUOTE>
    Ditto. I have spent hours with this exact problem. In the end, I reverted to deploying my existing code to 9ias 1.0.2.2, ie not using the OC4J engine. My code which worked with earlier versions of ias (including 8ias and 1.0.2.0) suddenly had a problem in 9ias 1.0.2.2 finding my connection file. It appears to be a general problem with the ClassLoader and the path of the resource.
    Shahbaz, have you tried to run your generated JSP with the BC4J against 9ias (just using Apache and the Oracle engine) ? Do you get different results ?
    null

  • Deployments of BC4J using Jdeveloper3.2 on Oracle9i AS

    I would like to know the deployment proceedures of deploying a BC4J to Oracle 9iAS. At present i am trying deploying BC4J from Jdeveloper directly to an oracle8i.
    In future 8i is going to be used as a database with 9i as an application server.
    Would appreciate the help put forth,
    David.

    David,
    Here is a document that describes the steps in detail, following the online orders example in JDev 3.2.
    Hope this helps,
    Lynn
    Java Tools Team
    IAS 1.0.1 Installation On NT or 2000
    ==============================
    You do not have to do an enterprise installation of IAS to make a jsp
    application works. IAS enterprise editions includes Forms, Reports, Discoverer,
    Oracle HTtp Server.
    For running a jsp application created by oracle Jdeveloper you can just install
    Oracle Http Server which is going to take about 250 MB space in your hard drive.
    This is the first option Of IAS installation.
    Accept all default, when asked for creating Directory Service
    (Oracle Internet Directory), ignore this step. You can however
    create a local net8 service to test with sql plus. IAS comes in two cds,
    you will have to restart your machine when the first cd finishes,
    then you will be asked to insert the second cd. after successfully
    finishing the installtion, Apache http server will start automatically.
    to test it, type the ip address of your machine in any browser http://ipAddress
    (no port is needed to be entered)
    you should see ORACLE HTTP SERVER default page.
    Note: You can install IAS to any directory you want . normally it will
    be in Oracle\IAS.
    Sample JSP Application
    ======================
    For this demo, we will use Online Auction Sample.
    This sample comes with jdeveloper 3.1 or 3.1.1.2 installation under
    samples\bc4j directory.
    Open jdeveloper and go to FILE\OPEN and navigate to the samples directory
    of jdeveloper to select the bc4jauctions.jws
    When you open this worspace, you will see 4 projects related to each other.
    (businesslogic.jpr, hotbids.jpr, jsps.jpr,setup.jpr)
    Before talking about IAS here, you need to open setup.jpr and go to
    BC4JAuctions.html to learn about how to run this sample in jdeveloper.
    Before compiling, you need to go to jsps.jpr and open the jsp source files
    and remove this statement from the IMPORT section:
    oracle.jbo.common.appmgr.*,
    if you left it, it will work in jdeveloper, but when you run it in the web
    server, it will generate some errors that it will not be able to resolve
    the appmgr.* classes.
    this import is not needed.
    Deploying to Sample to IAS 1.0.1
    ============================
    After compiling and running successfully the jsp application in jdeveloper
    follow the following steps:
    after IAS installation, your IAS_home might look like this:
    C:\Oracle\iAS
    1. go to C:\Oracle\iAS\Apache\Apache\htdocs and create a folder.
    Name that folder auctionDemo.
    2. in Jdeveloper, select jsps.jpr and go to Project menu \ Deploy \
    new Deployment Profile.
    in the deployment wizard, click next and select Web Application to Web server
    from the drop down list.
    in step 2 of 6, browse to C:\Oracle\iAS\Apache\Apache\htdocs\auctionDemo,
    (still in step 2 of 6) From file to deploy, check buildjsps.
    This will deploy all the jsp and html file plus the webbeans classes,
    click next, accept the defaults.
    in step 5 of 6 , click next without moving the files
    (this is needed only for applets),
    in step 6 of 6 move all project libraries to deployed libraries,
    click next then FINISH.
    click YES to deploy.
    After this C:\Oracle\iAS\Apache\Apache\htdocs\auctionDemo directory
    will have all the following files in it:
    including a folder that will be generated by the wizard.
    the name of the folder is bc4jauctions and this will contain
    another folder called buildjsps in which all the jsp files will be included.
    jsps.jar: this contains the jsp files and the webbeans class files
    Jdeveloper libraries: use winzip utility to jar these files into one
    jar file and call it jdevLib.jar.
    the files that need to be jarred are :
    aurora_client.jar
    classes12.zip
    connectionmanager.zip
    javax_ejb.zip
    jbohtml.zip
    jbojdbcpatch.zip
    jbomt.zip
    jboo8i.zip
    jbooorasql.zip
    jboremote.zip
    jboremoteejb.zip
    jdev-rt.zip
    jndi.jar
    ojc.jar
    ojsp.jar
    runtime.zip
    servlet.jar
    vbjorb.jar
    vbjapp.jar
    xmlparser2.jar
    3. copy connections.properties file to auctionDemo. make sure you open
    this file in notepad and see if the auction connection is there.
    4.copy package1_Package1Module.properties file from jdeveloper_home\samples
    \bc4j\bc4jauctions to
    C:\Oracle\iAS\Apache\Apache\htdocs\auctionDemo
    5.in jdeveloper select businesslogic.jpr and go to project menu\deploy\
    new deployment profile.
    choose to deploy as a simple archive, click next. when asked about the archive
    path , browse to C:\Oracle\iAS\Apache\Apache\htdocs\auctionDemo,
    the name of the jar file will be businesslogic.jar
    click next, finish then accept to deploy
    6. For the images that the jsp application is using , you need to point
    to webapp folder that contains them. therefore create a folder in
    C:\Oracle\iAS\Apache\Apache\htdocs and call it bc4jauctions.
    copy webapp folder from jdeveloper_home\samples\bc4j\bc4jauctions\webapp to
    C:\Oracle\iAS\Apache\Apache\htdocs\bc4jauctions
    Note: right now, your folder C:\Oracle\iAS\Apache\Apache\htdocs\auctionDemo
    should contain the following files:
    *)jsps.jar
    *)jdevLib.jar
    *)businesslogic.jar
    *)connections.properties
    *)package1_Package1Module.properties
    *)and a folder named bc4jauctions (wich has another folder called buildjsps)
    7. you need to set the classpath to point to the above jar files.
    to do this you need to modify the jserv.properties file of the http server.
    Note: you might find duplicate jser.properties file, make sure to go to
    the properties of the file by right clicking on jserv file (located in
    C:\Oracle\iAS\Apache\Jserv\Conf)
    and make sure that it says in TYPE of FILE: Properies file. that is the one
    you need to edit.
    open jserv.properties file and add these lines in wrapper.classpath section
    wrapper.classpath=C:\Oracle\iAS\Apache\Apache\htdocs\auctionDemo
    wrapper.classpath=C:\Oracle\iAS\Apache\Apache\htdocs\auctionDemo\jdevLib.jar
    wrapper.classpath=C:\Oracle\iAS\Apache\Apache\htdocs\auctionDemo\connections.properties
    wrapper.classpath=C:\Oracle\iAS\Apache\Apache\htdocs\auctionDemo\package1_Package1Module.properties
    wrapper.classpath=C:\Oracle\iAS\Apache\Apache\htdocs\auctionDemo\businesslogic.jar
    wrapper.classpath=C:\Oracle\iAS\Apache\Apache\htdocs\auctionDemo\jsps.jar
    remember that the main.jsp is inside C:\Oracle\iAS\Apache\Apache\htdocs\
    auctionDemo\bc4jauctions\buildjsps
    therefore to run this sample in IAS, make sure first that the Oracle Http
    Server is running.If it is not running, go to the START menu
    \PROGRAMS\Oracle-iAs Home\Oracle Http Server click on
    start Http server powered by Apache
    8. To run the auction sample in the browser, open netscape or Internet explorer
    and type the following URL: http://yourIpAddress/auctionDemo/bc4jauctions/buildjsps/main.jsp
    Now you can Play with it.
    Cool, isn't it?
    null

  • What is the benefit of using BC4J?

    Folks,
    After working with BC4J for three months, I still can not convince my manager to use BC4J. His major arguments are:
    1. Which applications or web sites are implemented using BC4J? Are they real application or just a demo. For the time being, I even can not show him a demo, not to say any real web applications.
    2. His developers told him that the O-R mapping provided by BC4J, which is probabably one of the key benefit of BC4J can be easily coded manually with a couple of days work for the current task and we have the full control over our own code while BC4J is not an open source and the lack of the support from Oracle really worries him.
    Can someone in Jdev team give me a clear evidence to convince him?
    Thanks,
    Yibing

    [list]
    [*]With regard to struts integration with BC4J, I have done some investigations of the new release and know that BC4JActionForm is only good for simple view and does not work for a joint table view as I have reported a few days ago in this group and no response is received yet.
    This should not be the case. Should work for any view object. View objects can contain join queries with any number of updateable tables in them. Please email me the URL to the forum posting so I can track down the issue.
    [*]I have been recently told indirectly from Oracle that the consulting group at oracle are not using BC4J and instead they think that BC4J only applies to simple applications with limited number of tables and relationships.
    This is plain incorrect. We have very large applications using BC4J both internal in Oracle Applications, for Oracle iLearning, and many external customers. Many of these projects have involved (and are currently involving) Oracle Consulting. Not sure where got this information, but it is incorrect.
    [*]Other commecial O-R mapping products such as top-link should be used for large applications
    The key difference between Oracle9i TopLink and Oracle9i BC4J has nothing to do with the size of your project. The fundamental difference is that toplink is for customers who have already written a custom application framework and who require just a persistence architecture, because they've already hand-written code to implement all of the other J2EE design patterns that are required to build real J2EE applications.
    Conversely, BC4J is for customers who want a complete J2EE Application Framework (and tightly integrated, award-winning toolset to go with it) to avoid having to write, test, debug, and maintain their own application framework.
    There is simply no evidence to backup your statement that BC4J only works for small applications. I am aware of at least 20 (and by now after a summer full of training additional Oracle Apps development teams in BC4J, perhaps over 30) that are using BC4J for full-scale, self-service J2EE web applications. Our BC4J reference info pages (link in this thread above) have references to customers who are using BC4J for large applications as well.
    [list]
    Hope this helps.

  • 903/902/BC4J can't get data-sources.xml conn pooling to work in production; help

    I have several BC4J ears deployed to a 903 instance of OC4J being configured as a standalone
    instance. I've had this problem since I started deploying in development on 902. So it's
    some basic problem that I've not mastered.
    I can't get data-sources.xml managed connection pooling to actually pool conn's. I'm wanting
    to declare my jndi jdbc source connection pool in j2ee/home/config/data-sources.xml.
    Have all BC4J apps get conns from this JNDI JDBC pool. I've removed all data-sources.xml from my BC4J ears,
    and published the jndi jdbc source in my oc4j common data-sources.xml. I've tested that this is
    the place controlling the conn URL/login passwd by commenting it out of config/data-sources.xml
    and my BC4J apps then throw exceptions, can't get conn.
    I've set the oc4j startup cmd line with the BC4J property to enabled connection pooling:
    -Djbo.doconnectionpooling=true
    symptom
    Connections are created and closed. Instead of being put back into the pool managed by oc4j,
    what ever BC4J is doing or my data-sources.xml is doing, the connections are just being created and
    closed.
    I can verify this via (solaris) lsof and netstat, where I see my oc4j instance under test load
    with only 1 or 2 conns to the db box, and the ephemeral port is tumbling, meaning a new socket is
    being opened for each conn. ;( grrrrrrr
    Does anyone have a clue as to why this is happening?
    Thanks, curt
    my data-sources.xml
    <data-sources>
         <data-source
            class="com.evermind.sql.DriverManagerDataSource"
            connection-driver="oracle.jdbc.driver.OracleDriver"
            ejb-location="jdbc/DEVDS"
            location="jdbc/DEVCoreDS"
            name="DEVDS"
            password="j2train"
            pooled-location="jdbc/DEVPooledDS"
            url="jdbc:oracle:thin:@10.2.1.30:1521:GDOC"
            username="jscribe"
            xa-location="jdbc/xa/DEVXADS"
            inactivity-timeout="300"
            max-connections="50"
            min-connections="40"
        />
    </data-sources>

    I've run another test using local data-source.xml, that's packaged in the .ear. Still
    pooling under BC4J doesn't work??
    A piece of info is that the 903 oc4j release notes states that global conn pooling doesn't
    work. Infering that the j2ee/home/config/data-sources.xml data sources aren't pooled or ??
    I just tested so called local connection pooling, where I edited the data-sources.xml that
    gets packaged in the ear, to include the min/max params and re-ran my test.
    Still, the AM creates a new conn, it's to a new socket, and closes the conn when done. Causing
    each conn to not be pooled, rather opened then closed to the DB box. As verified with lsof and
    netstat, checking the ephemeral port # on the DB box side, always changes, meaning it's a
    new socket and not an old pooled conn socket.
    ???? What the heck??
    Surely if the AM conn check out / return code works properly, OC4J's pooling JDBC driver would
    pool and not close the socket??
    Has anywone gotten JDBC Datasource connections in BC4J to actually be pooled under OC4J??
    Since I couldn't get this to work in my early 902 oc4j testing, and now can't get it to work
    still under 903 OC4J, either it's my config or BC4J AM's code or OC4J?
    Any thoughts on how to figure out what's not configed correctly or has a bug?
    Thanks, curt

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

  • Using the BC4J with JDeveloper

    What exactly is the meaning of business logic in BC4J?
    It says thatBC4J Entity objects encapsulate the business
    logic.
    What is this business logic?
    Is it the Primary Key/Foreign key relationship between
    tables?

    There is a thriving JDeveloper forum. ( It is visited by members of the Oracle Java tools teams like Steve Muench and Chris Schalk, and so doesn't depend so much upon self-styled experts like me :P ). You'll find it JDeveloper and ADF.
    Business logic are rules regulating the use of the entity. This includes not just integrity constraints but also things like default values, check constraints, etc. In a sense this duplicates stuff that can be defined in the database, but (a) some java heads don't like squirming around in the primordial ooze of SQL and (b) because it's Java we can write stuff programmatically, which gives more flexibility than the CHECK CONSTRAINT syntax permits.
    Cheers, APC

  • Using predefined JDBC database connection in runtime for BC4J

    I've created an aplication using BC4J context, however I want to have several distinct users acessing this aplication, so I create the connection to the database using stantart JDBC 2.0, and now I want my application to use this connection instead of the one defined for BC4J.
    The database user owner of the objects must be locked.
    Is this possible?
    Many thanks.
    Nuno

    In Forms I used the following code to change the user at runtime. I created 3 char fields 'u','p' and 'c' for username, password and connect string respectively.
    declare
    uname varchar2(10);
    begin
    uname := get_application_property(username);
    -- To display your current username
    message(uname);
    pause;
    logout;
    logon(:u,:p&#0124; &#0124;'@'&#0124; &#0124;:c);
    end;
    Have a nice day,
    Abhijith Unnikannan,
    Oracle Support Services

  • JDBC driver register issue in iAS.

    I currently turn to EJB development, and I encountered a problem when running a CMP sample in iPlanet. My develop environment list below:
    Windows 2000 Server
    iPlanet 6.0 SP3 (Installed in G:\iplanet\ias6\ias )
    Oracle8i,
    Forte for Java 3.0
    I learn CMP Bean by study the Product sample in iPlanet ( G:\iplanet\ias6\ias\ias-samples\j2eeguide\product ). I ran the script in G:\iplanet\ias6\ias\ias-samples\j2eeguide\product\src\schema\setup_ora.bat. It register a ORACLE-OCI ,the type 2 driver. But I want to register a type 4 driver. So I start kregedit ,
    removed the type 2 , and register a type 4 driver and datasource use iASAT. The entries list following:
    Oracle Type4 Driver Register
    DriverType:oracle-type4
    Driver ClassName:oracle.jdbc.driver.OracleDriver
    Driver Classpath:D:\oracle\ora81\jdbc\lib\classes12.zip
    DataSource configuration
    JNDI Name:bankDS
    DriverType:oracle-type4
    DatabaseUrl:oracle:thin:@192.168.188.31:1521:PhilipW
    Username:philip
    Password:tiger
    Then, I run the client (both servlet and rmi), all successfully. But few days later. When I run it a exception raise to indicated that the iAS can't find jdbc driver. Message in KJS Process window list below:
    ==================First KJS Process window================
    Engine running on Java HotSpot(TM) Server VM 2.0fcs JVM supplied by Sun Microsy
    stems Inc.
    Connected to LDAP server on top-philip port 389
    iPlanet Application Server is running in international mode
    Initializing LDAP cache from server top-philip port 389
    LDAP cache initialization completed successfully.
    [25/&#20108;&#26376;/2002 16:05:53:6] info: ENGINE-ready: ready: 8787
    eng =com.kivasoft.types.enumSubKeysIGDSKey@288051
    eng =com.kivasoft.types.enumSubKeysIGDSKey@45eb
    eng =com.kivasoft.types.enumSubKeysIGDSKey@6e7a14
    eng =com.kivasoft.types.enumSubKeysIGDSKey@10cb03
    [25/&#20108;&#26376;/2002 16:06:18:9] error: EB-001: Unable to locate interface IGXTxnAssocMgr
    [25/&#20108;&#26376;/2002 16:06:19:0] info: PROT-006: new connection established
    ================Second KJS Process Window ==================
    [25/&#20108;&#26376;/2002 16:05:44:0] info: ENGINE-ready: ready: 10819
    [25/&#20108;&#26376;/2002 16:06:19:0] info: PROT-006: new connection established
    [25/&#20108;&#26376;/2002 16:06:19:0] info: REQ-012: thread add
    java.sql.SQLException: No suitable driver
    at java.sql.DriverManager.getDriver(DriverManager.java:208)
    at com.netscape.server.jdbc.DataSourceImpl.loadDriver(Unknown Source)
    at com.netscape.server.jdbc.DataSourceImpl.getConnection(Unknown Source
    at com.netscape.server.jdbc.DataSourceImpl.getConnection(Unknown Source
    at com.netscape.server.ejb.SQLPersistenceManager.getConnection(Unknown source)
    at com.netscape.server.ejb.SQLPersistenceManager.start(Unknown Source)
    at com.netscape.server.ejb.SQLPersistenceManager.start(Unknown Source)
    at com.netscape.server.ejb.SQLPersistenceManager.create(Unknown Source)
    at com.netscape.server.ejb.EntityDelegateManagerImpl.doPersistentCreate(Unknown Source)
    at com.netscape.server.ejb.EntityDelegateManagerImpl.create(Unknown Souce)
    at com.kivasoft.eb.EBHomeBase.create(Unknown Source)
    at com.titan.cabin.ejb_home_com_titan_cabin_CabinBean.create(ejb_home_cm_titan_cabin_CabinBean.java:76)
    at com.titan.cabin.ejb_kcp_skel_CabinHome.create__com_titan_cabin_Cabin_int(ejb_kcp_skel_CabinHome.java:208)
    at com.kivasoft.thread.ThreadBasic.run(Native Method)
    at java.lang.Thread.run(Thread.java:479)
    I am sure the classes12.zip (the Oracle type4 jdbc driver ) is on the iAS's classpath. I guess maybe this caused by the type2 driver. I had reinstalled iAS, even the OS. but I can't resolve this problem. I
    really feel crazy! Do you have any idea?
    Thanks in advance.
    Shuhao Wang

    Shouldn't the database URL be
    "<B>jdbc:</B>oracle:thin:@192.168.188.31:1521:PhilipW"? And it could also be a good idea to add the path to classes12.zip to appserver/6.0/java/classpath using kregedit...

  • ADF BC : many bc4j.xcfg files created

    hi
    Please consider this scenario using JDeveloper 10.1.3.3.0 to see that many bc4j.xcfg files are created when selecting a different connection:
    (1) First download Steve's example 116 (only 80 KB).
    (2) Unzip it and open MultipleLevelsOfReferenceAttributes.jws in JDeveloper 10.1.3.3.0 (where it will be migrated from JDeveloper 10.1.3.2.0 in which it was created).
    (3) In the "Open Warning" dialog that says "You are about to migrate the application ... to JDeveloper version 10.1.3.3.0 file format. ..." click Yes.
    (4) In the "Migration Progress" dialog that says "Migration successfully completed for ..." click OK.
    (5) Double click on the "Project" project to get the Project Properties dialog.
    (6) Select the Business Components panel and select any valid connection, click OK.
    (7) Click on Save All in the toolbar.
    At this time the Project.jpr file has changed.
    It also has a few new new entries in the "ownerMap" list, of "nodeClass" "oracle.jbo.dt.jdevx.JdvXmlNode" and also "oracle.jbo.dt.jdevx.ui.JdxXcfgNode" referring to these bc4j.xcfg files :
    Project/src/test/entities/associations/common/bc4j.xcfg
    Project/src/test/entities/common/bc4j.xcfg
    Project/src/test/queries/common/bc4j.xcfg
    Project/src/test/queries/viewlinks/common/bc4j.xcfgThese bc4j.xcfg files were also created on the file system and were not in the example when downloaded (you could use Subversion to see the exact differences).
    question:
    Why are so many bc4j.xcfg files created?
    many thanks
    Jan Vervecken

    Thank you for trying to reproduce this Frank.
    I tried the complete scenario again, including the download, and it still reproduces for me.
    So, you don't see the 4 new bc4j.xcfg files in the "Project/src" folder?
    regards
    Jan Vervecken

  • 903/902/BC4J can't get OC4J data-sources.xml conn pooling to work in production: help

    [cross posted to the j2ee forum]
    I have several BC4J ears deployed to a 903 instance of OC4J being configured as a standalone
    instance. I've had this problem since I started deploying in development on 902. So it's
    some basic problem that I've not mastered.
    I can't get data-sources.xml managed connection pooling to actually pool conn's. I'm wanting
    to declare my jndi jdbc source connection pool in j2ee/home/config/data-sources.xml and
    have all BC4J apps get conns from this JNDI JDBC pool. I've removed all data-sources.xml from
    my BC4J ears, and published the jndi jdbc source in my oc4j common data-sources.xml.
    I've tested that this is the place controlling the conn URL/login passwd by commenting it
    out of config/data-sources.xml and my BC4J apps then throw exceptions, can't get conn.
    I've set the oc4j startup cmd line with the BC4J property to enabled connection pooling:
    -Djbo.doconnectionpooling=true
    symptom
    Connections are created and closed. Instead of being put back into the pool managed by oc4j,
    what ever BC4J is doing or my data-sources.xml is doing, the connections are just being created and
    closed.
    I can verify this via (solaris) lsof and netstat, where I see my oc4j instance under test load
    with only 1 or 2 conns to the db box, and the ephemeral port is tumbling, meaning a new socket is
    being opened for each conn. ;( grrrrrrr
    Does anyone have a clue as to why this is happening?
    Thanks, curt
    my data-sources.xml
    <data-sources>
         <data-source
            class="com.evermind.sql.DriverManagerDataSource"
            connection-driver="oracle.jdbc.driver.OracleDriver"
            ejb-location="jdbc/DEVDS"
            location="jdbc/DEVCoreDS"
            name="DEVDS"
            password="j2train"
            pooled-location="jdbc/DEVPooledDS"
            url="jdbc:oracle:thin:@10.2.1.30:1521:GDOC"
            username="jscribe"
            xa-location="jdbc/xa/DEVXADS"
            inactivity-timeout="300"
            max-connections="50"
            min-connections="40"
        />
    </data-sources>

    Thanks Leif,
    Yes, set it to the location jndi path.
    A piece of info is that the 903 oc4j release notes states that global conn pooling doesn't
    work. Infering that the j2ee/home/config/data-sources.xml data sources aren't pooled or ??
    I just tested so called local connection pooling, where I edited the data-sources.xml that
    gets packaged in the ear, to include the min/max params and re-ran my test.
    Still, the AM creates a new conn, it's to a new socket, and closes the conn when done. Causing
    each conn to not be pooled, rather opened then closed to the DB box. As verified with lsof and
    netstat, checking the ephemeral port # on the DB box side, always changes, meaning it's a
    new socket and not an old pooled conn socket.
    ???? What the heck??
    Surely if the AM conn check out / return code works properly, OC4J's pooling JDBC driver would
    pool and not close the socket??
    Has anywone gotten JDBC Datasource connections in BC4J to actually be pooled under OC4J??
    Since I couldn't get this to work in my early 902 oc4j testing, and now can't get it to work
    still under 903 OC4J, either it's my config or BC4J AM's code or OC4J?
    Any thoughts on how to figure out what's not configed correctly or has a bug?
    Thanks, curt

  • JDBC login with BC4J in 9.0.3

    I have recently migrated a BC4J project to 9.0.3 and would like to maintain the JDBC login style rather than go to JAAS at the moment. I have been trying to get this to work but cannot get the custom JCLoginDialog class to work. I believe the getInfo method should return null in 9.0.3 rather than the connEnvironment hashtable object and one thread on here I read said that what was needed was the lines:
    ((Hashtable)connEnvironment).put(Configuration.DB_USERNAME_PROPERTY, mUserName.getText().trim());
    ((Hashtable)connEnvironment).put(Configuration.DB_PASSWORD_PROPERTY, new String(mPassword.getPassword()).trim());
    However I then get an error:
    JBO-29000: Unexpected exception caught: oracle.jbo.common.ampool.ApplicationPoolException, msg=JBO-30003: The application pool (DEPTModuleLocal) failed to checkout an application module due to the following exception: ....
    The getInfo method is called 13 times before this message is displayed and does not ever set a password value in the connEnvironment hashtable (i.e. the second and subsequent times the method is called this ((Hashtable)connEnvironment).get(Configuration.DB_PASSWORD_PROPERTY) returns null).
    Can anyone indicate what I am doing wrong / missing.
    Cheers
    Mike G

    I have now tried to create a BC4J project based on DEPT and a single table form to view it. This fails to run, giving the stack below. This was created entirely using the Wizards in JDeveloper and wouldn't run 'out of the box'.
    Cheers
    Mike G
    Stack trace
    oracle.jbo.JboException: JBO-29000: Unexpected exception caught: oracle.jbo.common.ampool.ApplicationPoolException, msg=JBO-30003: The application pool (Mypackage1ModuleLocal) failed to checkout an application module due to the following exception:
         void oracle.jbo.JboException.<init>(java.lang.Throwable)
              JboException.java:344
         oracle.jbo.ApplicationModule oracle.jbo.client.Configuration.createRootApplicationModuleFromConfig(java.lang.String, oracle.jbo.common.ampool.EnvInfoProvider)
              Configuration.java:1144
         oracle.jbo.uicli.binding.JUApplication oracle.jbo.uicli.mom.JUMetaObjectManager.createApplicationObject(java.lang.String, java.util.Properties, oracle.jbo.common.ampool.EnvInfoProvider)
              JUMetaObjectManager.java:386
         void mypackage1.FormDeptView1.main(java.lang.String[])
              FormDeptView1.java:376
    ## Detail 0 ##
    JBO-30003: The application pool (Mypackage1ModuleLocal) failed to checkout an application module due to the following exception:
    oracle.jbo.DMLException: JBO-26061: Error while opening JDBC connection.
         java.sql.Connection oracle.jbo.server.ConnectionPool.createConnection(java.lang.String, java.util.Properties, java.lang.String, java.lang.String)
              ConnectionPool.java:202
         java.lang.Object oracle.jbo.server.ConnectionPool.instantiateResource(java.util.Properties)
              ConnectionPool.java:125
         java.lang.Object oracle.jbo.pool.ResourcePool.createResource(java.util.Properties)
              ResourcePool.java:315
         java.lang.Object oracle.jbo.pool.ResourcePool.useResource(java.util.Properties)
              ResourcePool.java:233
         java.sql.Connection oracle.jbo.server.ConnectionPool.getConnection(java.lang.String, java.util.Properties, java.lang.String, java.lang.String)
              ConnectionPool.java:72
         java.sql.Connection oracle.jbo.server.ConnectionPoolManagerImpl.getConnection(java.lang.String, java.lang.String, java.util.Properties, java.lang.String, java.lang.String)
              ConnectionPoolManagerImpl.java:56
         java.sql.Connection oracle.jbo.server.DBTransactionImpl.establishNewConnection(oracle.jbo.server.ConnectionCredentials, java.lang.StringBuffer)
              DBTransactionImpl.java:707
         void oracle.jbo.server.DBTransactionImpl.initTransaction()
              DBTransactionImpl.java:928
         void oracle.jbo.server.DBTransactionImpl.initTxn(oracle.jbo.server.ApplicationModuleImpl, oracle.jbo.server.DBTransactionImpl, oracle.jbo.server.TransactionHandler)
              DBTransactionImpl.java:4793
         void oracle.jbo.server.DBTransactionImpl2.connect(java.lang.String, java.util.Properties)
              DBTransactionImpl2.java:116
         void oracle.jbo.common.ampool.DefaultConnectionStrategy.connect(oracle.jbo.ApplicationModule, oracle.jbo.common.ampool.SessionCookie, oracle.jbo.common.ampool.EnvInfoProvider)
              DefaultConnectionStrategy.java:261
         void oracle.jbo.common.ampool.ApplicationPoolImpl.connect(oracle.jbo.ApplicationModule, oracle.jbo.common.ampool.SessionCookie)
              ApplicationPoolImpl.java:2844
         oracle.jbo.ApplicationModule oracle.jbo.common.ampool.ApplicationPoolImpl.doCheckout(oracle.jbo.common.ampool.SessionCookie)
              ApplicationPoolImpl.java:1408
         oracle.jbo.ApplicationModule oracle.jbo.common.ampool.ApplicationPoolImpl.useApplicationModule(oracle.jbo.common.ampool.SessionCookie, boolean)
              ApplicationPoolImpl.java:2062
         oracle.jbo.ApplicationModule oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(boolean, long)
              SessionCookieImpl.java:398
         oracle.jbo.ApplicationModule oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(boolean)
              SessionCookieImpl.java:369
         oracle.jbo.ApplicationModule oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule()
              SessionCookieImpl.java:364
         oracle.jbo.ApplicationModule oracle.jbo.client.Configuration.createRootApplicationModuleFromConfig(java.lang.String, oracle.jbo.common.ampool.EnvInfoProvider)
              Configuration.java:1135
         oracle.jbo.uicli.binding.JUApplication oracle.jbo.uicli.mom.JUMetaObjectManager.createApplicationObject(java.lang.String, java.util.Properties, oracle.jbo.common.ampool.EnvInfoProvider)
              JUMetaObjectManager.java:386
         void mypackage1.FormDeptView1.main(java.lang.String[])
              FormDeptView1.java:376
    ## Detail 0 ##
    java.sql.SQLException: invalid arguments in call
         void oracle.jdbc.dbaccess.DBError.throwSqlException(java.lang.String, java.lang.String, int)
              DBError.java:187
         void oracle.jdbc.dbaccess.DBError.throwSqlException(int, java.lang.Object)
              DBError.java:229
         void oracle.jdbc.dbaccess.DBError.check_error(int)
              DBError.java:982
         oracle.jdbc.dbaccess.DBConversion oracle.jdbc.ttc7.TTC7Protocol.logon(java.lang.String, java.lang.String, java.lang.String, java.util.Properties)
              TTC7Protocol.java:198
         void oracle.jdbc.driver.OracleConnection.<init>(oracle.jdbc.dbaccess.DBAccess, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.util.Properties)
              OracleConnection.java:361
         java.sql.Connection oracle.jdbc.driver.OracleDriver.getConnectionInstance(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.util.Properties)
              OracleDriver.java:485
         java.sql.Connection oracle.jdbc.driver.OracleDriver.connect(java.lang.String, java.util.Properties)
              OracleDriver.java:337
         java.sql.Connection java.sql.DriverManager.getConnection(java.lang.String, java.util.Properties, java.lang.ClassLoader)
              DriverManager.java:517
         java.sql.Connection java.sql.DriverManager.getConnection(java.lang.String, java.util.Properties)
              DriverManager.java:146
         java.sql.Connection oracle.jbo.server.ConnectionPool.createConnection(java.lang.String, java.util.Properties, java.lang.String, java.lang.String)
              ConnectionPool.java:171
         java.lang.Object oracle.jbo.server.ConnectionPool.instantiateResource(java.util.Properties)
              ConnectionPool.java:125
         java.lang.Object oracle.jbo.pool.ResourcePool.createResource(java.util.Properties)
              ResourcePool.java:315
         java.lang.Object oracle.jbo.pool.ResourcePool.useResource(java.util.Properties)
              ResourcePool.java:233
         java.sql.Connection oracle.jbo.server.ConnectionPool.getConnection(java.lang.String, java.util.Properties, java.lang.String, java.lang.String)
              ConnectionPool.java:72
         java.sql.Connection oracle.jbo.server.ConnectionPoolManagerImpl.getConnection(java.lang.String, java.lang.String, java.util.Properties, java.lang.String, java.lang.String)
              ConnectionPoolManagerImpl.java:56
         java.sql.Connection oracle.jbo.server.DBTransactionImpl.establishNewConnection(oracle.jbo.server.ConnectionCredentials, java.lang.StringBuffer)
              DBTransactionImpl.java:707
         void oracle.jbo.server.DBTransactionImpl.initTransaction()
              DBTransactionImpl.java:928
         void oracle.jbo.server.DBTransactionImpl.initTxn(oracle.jbo.server.ApplicationModuleImpl, oracle.jbo.server.DBTransactionImpl, oracle.jbo.server.TransactionHandler)
              DBTransactionImpl.java:4793
         void oracle.jbo.server.DBTransactionImpl2.connect(java.lang.String, java.util.Properties)
              DBTransactionImpl2.java:116
         void oracle.jbo.common.ampool.DefaultConnectionStrategy.connect(oracle.jbo.ApplicationModule, oracle.jbo.common.ampool.SessionCookie, oracle.jbo.common.ampool.EnvInfoProvider)
              DefaultConnectionStrategy.java:261
         void oracle.jbo.common.ampool.ApplicationPoolImpl.connect(oracle.jbo.ApplicationModule, oracle.jbo.common.ampool.SessionCookie)
              ApplicationPoolImpl.java:2844
         oracle.jbo.ApplicationModule oracle.jbo.common.ampool.ApplicationPoolImpl.doCheckout(oracle.jbo.common.ampool.SessionCookie)
              ApplicationPoolImpl.java:1408
         oracle.jbo.ApplicationModule oracle.jbo.common.ampool.ApplicationPoolImpl.useApplicationModule(oracle.jbo.common.ampool.SessionCookie, boolean)
              ApplicationPoolImpl.java:2062
         oracle.jbo.ApplicationModule oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(boolean, long)
              SessionCookieImpl.java:398
         oracle.jbo.ApplicationModule oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(boolean)
              SessionCookieImpl.java:369
         oracle.jbo.ApplicationModule oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule()
              SessionCookieImpl.java:364
         oracle.jbo.ApplicationModule oracle.jbo.client.Configuration.createRootApplicationModuleFromConfig(java.lang.String, oracle.jbo.common.ampool.EnvInfoProvider)
              Configuration.java:1135
         oracle.jbo.uicli.binding.JUApplication oracle.jbo.uicli.mom.JUMetaObjectManager.createApplicationObject(java.lang.String, java.util.Properties, oracle.jbo.common.ampool.EnvInfoProvider)
              JUMetaObjectManager.java:386
         void mypackage1.FormDeptView1.main(java.lang.String[])
              FormDeptView1.java:376

  • Differences Between JDev BC4J/JClient Versions

    Hi,
    I'm finding key differences between library versions of my BC4J and JClient libraries which are introducing bugs into my application. What once ran properly no longer runs properly in JDev 10.1.2. What makes this particularly interesting is that the Application Server has the older libraries (which work) while JDeveloper 10.1.2 has the new libraries (which have the issues). I was wondering if anyone could point me to a document of all the changes in BC4J and JClient between releases.
    Here are two of the differences I'm seeing...
    1. In the older BC4J lib (deployed by default with the 10g app server) using a ViewCriteria to select a ROW with a CHAR[7] using a string with less than 7 characters works fine. It simply does a standard CHAR[7] comparision, treating the missing characters as spaces, and finds a match. ie "select * from MY_TABLE where KEY='AA' finds the key with 'AA ' and it shows up in my results as I desire.
    In the newer BC4J lib, while the same select statement runs (and finds the row) the BC4J libraries seem to be doing a post processing in the ViewCriteria which HIDES this row from me. I have to manually PAD my input string in Java before putting it into the ViewCriteria to get it to work. (And no, the database can't be changed to a VARCHAR for other reasons.)
    2. The JFACE library's ScrollablePanel has no trouble creating a scrollable panel with a table for my ViewObject in the old version of the JFACE library. However, the new version of the JFace library has a problem where scrolling the panel shows many blank rows, until I actually click on a row, at which point the internal ViewObject cursor moves forward and loads that data (and hides the earlier data).
    This is annoying as I really would prefer to be able to upgrade to new libraries when they come out. But instead I'm having to download the older libraries and put them into JDeveloper instead.
    a. Can anyone point me to a document listing all changes between BC4J and JFace library versions?
    b. Does anyone know of a better way to work around the issues I'm seeing above? They're really annoying.
    Thanks,
    Doug

    Hi,
    I use weblogic 10.3.4 with Application Development Runtime (11.1.1.2.0) and JDev 11.1.1.4.i assume you are using standalone wls 10.3.4 with Application Development Runtime (11.1.1.2.0).
    But jdeveloper 11.1.1.4 has ADR 11.1.1.4.0 .. It would create some incompatabilities.
    Betw:
    you can install ADR from jdeveloper setup also, just uncheck the jdev and wls studio installation when installing ADR from jdev, It will also prompt for the wls home.
    Regards,
    Santosh.
    Edited by: Santosh Vaza on Apr 23, 2011 4:52 PM

Maybe you are looking for