Multiple J2EE applications on iAS904

Hi,
We will be having lots of J2EE applications deploy on iAS904. Is the best practice for this to have 1 OC4J per J2EE application? Or all J2EE applications in one OC4J container?
Thanks,
Charles

Hi Charles --
It's difficult to provide a single best practice. You'll need to look at the pros/cons of each and decide what makes most sense for your environment:
To get the ball rolling, here are some considerations:
1 OC4J instance per app:
+ finer grained manageability -- you can make changes to the one app which may require a start/stop of the app or the instance, which won't have any effect on other running apps/OC4J instances
+ The container level log files will just contain information pertaining to that one specific application
+ The OC4J instances can be tuned specifically for the application -- ie JVM settings
+ Clustering can be targetted for the single app -- if you have multiple applications per OC4J instance, then they all will participate in clustering if it is enabled (and they are clusterable). One app per OC4J instance produces a finer grained cluster model.
- Each OC4J instance is a JVM process. If each app has a JVM process then you may be wasting resouces on the system as the apps aren't sharing a JVM
- More management operations may be required since you may need to configure/maintain more instance information
I'm sure some other folks will chime in here with some more insight on their practical experiences.
There's an Oracle Application Server Best Practices document on OTN which I seem to remember does have some coverage of management/deployment issues which may some more information for you to consider.
cheers
-steve-

Similar Messages

  • Multiple Database in J2ee Application

    Dear sirs,
    I have a J2ee application which is running in JBOSS Server. The Data tier is MySql.
    Now the scenario is like this,
    We are having two clients, and the clients have different sub users. The clients are using two seperate database for the same application. Now the application is working in two different servers assigned for each clients. Now we are planning to integrate it to a single application . I would like to know whether
    1. Is it possible to specify the JNDI names for more than one database in the deployement descriptor?
    2. if it is then, how can we instruct the container to lookup dynamically for the appropriate database based on the user logged in to the application .
    I am planning to setup a new DB for the users information sothat the container can select the appropriate DB based on the user logged in...
    Thankyou,
    Sudheesh K S,

    Did you setup multiple realms correctly?
    Steps to follow (depending on your version of OID):
    - define second realm (OIDDAS)
    - Reconfigure SSO (login.jsp)
    - enable hosting (wwhost script)
    - add second subscriber (addsub script)
    - change searchbase (OIDDAS/ldif)
    All documented in the Oracle® Internet Directory Administrator's Guide,
    10g Release 2 (10.1.2) at
    http://download-west.oracle.com/docs/cd/B14099_19/idmanage.1012/b14082/toc.htm
    Pay attention to chapter 7 and appendix G

  • Best practice for distributing/releasing J2EE applications.

    Hi All,
    We are developing a J2EE application and would like some information on the best
    practices to be followed for distributing/releasing J2EE applications, in general.
    In particular, the dilemma we have is centered around the generation of stub, skeleton
    and additional classes for the application.
    Most App. Servers can generate the required classes while deploying the EJBs in the
    application i.e. at install time. While some ( BEA Weblogic and IBM Websphere are
    two that we are aware of ) allow these classes to be generated before the installation
    time and the .ear file containing the additional classes is the one that is uploaded.
    For instance, say we have assembled the application "myapp.ear" . There are two ways
    in which the classes can be generated. The first is using 'ejbc' ( assume we are
    using BEA Weblogic ), which generates the stub, skeleton and additional classes for
    the application and returns the file, say, "Deployable_myapp.ear" containing all
    the necessary classes and files. This file is the one that is then installed. The
    other option is to install the file "myapp.ear" and let the Weblogic App. server
    itself, generate the required classes at the installation time.
    If the first way, of 'pre-generating' the stubs is followed, does it require us to
    separately generate the stubs for each versions of the App. Server that we support
    ? i.e. if we generate a deployable file having the required classes using the 'ejbc'
    of Weblogic Ver5.1, can the same file be installed on Weblogic Ver6.1 or do we
    have to generate a separate file?
    If the second method, of 'install-time-generation' of stubs is used, what is the
    nature/magnitude of the risk that we are taking in terms of the failure of the installation
    Any links to useful resources as well as comments/suggestions will be appreciated.
    TIA
    Regards,
    Aasif

    Its much easier to distribute schema/data from an older version to a newer one than the other way around. Nearly all SQL Server deployment features supports database version upgrade, and these include the "Copy Database" wizard, BACKUP/RESTORE,
    detach/attach, script generation, Microsoft Sync framework, and a few others.
    EVEN if you just want to distribute schemas, you may want to distribute the entire database, and then truncate the tables to purge data.
    Backing up and restoring your database is by far the most RELIABLE method of distributing it, but it may not be pratical in some cases because you'll need to generate a new backup every time a schema change occurs, but not if you already have an automated
    backup/maintenance routine in your environment.
    As an alternative, you can Copy Database functionality in SSMS, although it may present itself unstable in some situations, specially if you are distributing across multiple subnets and/or domains. It will also require you to purge data if/when applicable.
    Another option is to detach your database, copy its files, and then attach them in both the source and destination instances. It will generate downtime for your detached databases, so there are better methods for distribution available.
    And then there is the previously mentioned method of generating scripts for schema, and then using an INSERT statement or the import data wizard available in SSMS (which is very practical and implements a SSIS package internally that can be saved for repeated
    executions). Works fine, not as practical as the other options, but is the best way for distributing databases when their version is being downgraded.
    With all this said, there is no "best practice" for this. There are multiple features, each offering their own advantages and downfalls which allow them to align to different business requirements.

  • Having multiple J2EE stacks connected to one CRM ABAP instance for CRM IPC

    Hello Experts,
    The situation we were looking at is this.
    We have 3 distinct teams doing Java development for CRM IPC configurators
    Team A - IPC/Ecommerce
    Team B - UI
    Team C - Order Wrapper
    They each wanted to do development in their own landscape (Java Stack)
    Additionally, two more landscapes are needed:
    a landscape for end 2 end testing of the configuration scenarios
    another for a Performance Assessment
    To get 5 full dual stack CRM instances was deemed unlikely.
    Trying to explore if multiple J2EE's, can be connected to one CRM ABAP system.
    It seems we can not, as the CRM ABAP to JEE comminucation is via RFC and there is excatly one RFC_Destination defined per CRM (across all clients). Is this correct?
    Thanks
    Rocky

    May be you can wordsmith your requirement to make it clear what each team is doing. Also, please mention what version of CRM / IPC you are talking about.
    From what you have said, I guess IPC/E-Commerce is E-Commerce enhancement. If NWDI is in the picture, you have one track for this enhancement.
    The UI - I assume is IPC UI. This is also a Java based web application that shares the same Java stack with the E-Commerce application.
    What is Order Wrapper? - If it a custom web application you guys are into, I still don't see why they can't use the same Java "stack".
    In the development lifecycle, it is sufficient to have only one IPC environment for each phase. The development team needs only one, unless they have a valid reason to have their own Java stack. I bet they need only one.
    If the developers are asking about "Sandbox", they can have their own NetWeaver Developer Workplace in their laptop / desktop.
    Easwar Ram
    http://www.parxlns.com

  • Get j2ee application directory

    Hi,
    Is there a way to get the disk path to the current
    j2ee application home at runtime. (i.e. .../j2ee/home/applications/myapp)
    I am generating html/csv files there and then redirecting
    to them.
    The same application is being deployed to multiple homes, so
    hardcoding the disk path in a properties file or anywhere else doen't work too well.
    thanks

    you can try using the getRealPath(...) method on the SevletContext

  • Cache between multiple contexts(application)

    Hi,
    I have a need of global cache where I can put my objects from one application and get that object in another application.Both these applications are deployed on the same oc4j server (there is no clustering).
    If anyone has an idea of how we can setup and configure a cache in oc4j, which will solve the above pupose, then please let me know.
    Thanks in advance.
    with regards,
    Shrikanth.

    Hi,
    Java Object Cache in oc4j is very simple concept, but I struggled a week to make it work in the absence of any proper example in oracle site or in web.
    Yes, we can place our object in JVM cache and we can use it in multiple contexts(applications) if we required.
    What I have done is created a folder called : "javacache" in parent directory of "j2ee" folder and placed my loader class and other utility classes inside folder:-javacache\sharedobjects\classes folder. As classpath for this folder is set atomatically, the cacheloader class will be treated as system classloader and we can initilize the cache here in system level.
    No configuration changes nothing, finally it worked.
    In case you need any more help, then pl let me know.
    Thanks.
    Shrikanth.

  • Deploying J2EE application on one instance for Clustering

    Hi,
    I was just wondering if anyone attempted this before. We are going to have multiple clusters of iAS with J2EE applications on each of them. However the source will be hosted on a non-iAS, non-J2EE disk and on the iAS/J2EE cluster, we will have a virtual link to the source files. That way, we only need to put the source files in one area and have the J2EE be a virtual link to the original source.
    Thanks.

    Hi. Well someone here suggested we have an OC4J instance on a Linux machine and another OC4J instance on another Linux machine. Each of them does not contain the original J2EE application source to be deployed. It will have a mirror of the J2EE application with each source files (JSP, class files, images, etc) acting as a virtual link to a centralized location to just store the application source.
    So to visualize, we have two different OC4J clustered instances with the empty source files pointing to one centralized location of the source files.
    This would only help us deploy in one location as oppose to each clustered location. Anyone ever tried this one before?

  • Deploying J2EE applications on one location

    Hi, someone in our group recommended this for our iAS (10.1.2.0.2) set up.
    1) We want multiple OC4J instances to be on multiple linux machines for clustering.
    2) Instead of deploying a J2EE app on each instance, can we configure the J2EE home to look at one centralized location? We would have all the source files be hosted on one centralized disk and have each OC4J instances (clustered) to be configured to use the source files on the centralized location?
    Thanks.

    Hi. Well someone here suggested we have an OC4J instance on a Linux machine and another OC4J instance on another Linux machine. Each of them does not contain the original J2EE application source to be deployed. It will have a mirror of the J2EE application with each source files (JSP, class files, images, etc) acting as a virtual link to a centralized location to just store the application source.
    So to visualize, we have two different OC4J clustered instances with the empty source files pointing to one centralized location of the source files.
    This would only help us deploy in one location as oppose to each clustered location. Anyone ever tried this one before?

  • Error while running a J2EE application on Oracle10gAS

    Hi,
    I am receiving an error when trying to run a J2EE application on Oracle10gAS. The application runs successfully on Oracle9iAS, but throws the following exception on 10g application server:
    <?xml version="1.0" encoding="UTF-8" ?>
    - <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    - <SOAP-ENV:Body>
    - <SOAP-ENV:Fault>
    <faultcode>SOAP-ENV:Server.Exception:</faultcode>
    <faultstring>com.evermind.server.rmi.OrionRemoteException: Error in createInstance(): null; nested exception is: java.lang.NoClassDefFoundError</faultstring>
    <faultactor>/STAR-TicketBroker-context-root/TicketBrokerWS</faultactor>
    </SOAP-ENV:Fault>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    Does anyone have any idea why I would be receiving this
    error? We are using Session EJBs in our J2EE application. Are there any changes needed in the code in order to migrate a J2EE application from 9i to 10g ???
    Please help.
    Thanks,
    -Prashant

    Hi Somil,
    I've just had this same error message, and it was because I had a bogus character in my JSP sources.  I'd cut-and-pasted the text from a Word document, and it included the "registered trademark" sign (an R in a circle) as a single character.  This worked in my test environment, but not in my production environment (where presumably the default encoding is different).  I replaced the character with the equivalent HTML entity &amp;reg; (ie. the five characters & r e g ; ) and it all worked.
    Have a look through the offending JSPs and see whether you have any characters that might be incompatible with your default encoding (anything that isn't plain old 7-bit ASCII is potentially a problem).  Change them to HTML entities and you should be fine.
    Hope this helps,
    Richie

  • SSO to J2EE application from SAP Portal

    Hi
    I am trying to do SSO from SAP Portal to a J2EE engine which runs on SAP Web AS.
    Here are my queries
    1. When I deploy a J2EE application on Web AS , I dont get any login screen. How can I make sure that if a user wants to access this J2EE application he should get a login screen and provide his login credentials first, only then would he be able to access the J2EE application.
    2.When I am done with Part 1. If a user tries to access this J2EE application from the Portal (asuming the user Id's in Portal and J2EE application are same and both are in the same domain) , I should not get any login screen and should be able to view the J2EE application.
    3.I want to use SAP Logon tickets generated by the Portal to enable SSO.
    I have done all the necessary configurations in the J2EE server.
    1. Imported the Portal's verify.der certificate.
    2. Adjusted the login modules stack for the application accordingly.
    Can anyone please help me out with this or throw some light.
    Please help.
    Thanks in advance,
    Vivek
    PS - Points will be definitely rewarded

    Hi Vivek,
    Let me give you the solution for both questions differently.
    <b>Ques 1. When I deploy a J2EE application on Web AS , I dont get any login screen. How can I make sure that if a user wants to access this J2EE application he should get a login screen and provide his login credentials first, only then would he be able to access the J2EE application.</b>
    <b>Ans:</b> For doing this in the code of your J2EE application you have to write a if statement which will check if the user ID is coming from the backend or not. If yes then you display that logon page else you just pass that username which is coming from backend and displ;ay the page accordingly.
    <b>Ques 2.When I am done with Part 1. If a user tries to access this J2EE application from the Portal (asuming the user Id's in Portal and J2EE application are same and both are in the same domain) , I should not get any login screen and should be able to view the J2EE application.</b>
    <b>Ans:</b> Yes, this is what I am explaining you. Even I had also made same kind of J2EE application in which if the user is coming from the backend then he/she will look the J2EE screen else if the username is not coming then he will se the Login screen. Exactly same as what are looking for.
    <b>3.I want to use SAP Logon tickets generated by the Portal to enable SSO.</b>
    <b>Ans:</b> I have used User Mapping instead of SAP Logon ticket. Well that is also the option for SSO but personally I think User Mapping is easy and better way for implementing SSO.
    I dont know whether this will help you or not. Please let me know. I can definately help if you want to implement SSO using User Maping.
    Regards
    Pravesh
    PS: Please dont forget to reward points.

  • SSO:Portal to J2EE Application

    Hi all,
    I have developed a simple java application that has user-id & password textboxes along with a submit button.(login.jsp)
    this is deployed as an iView in the server.
    When the submit button is clicked,it navigates 2 another JSP page(welcome.jsp) that displays the user's name if the id and passowrd matches with that present in the backend DB.
    I want 2 display this welcome page directly without prompting for a logon frm the user.
    How can i do this with AppIntegrator?I referd the following <a href="https://www.sdn.sap.com/irj/sdn/thread?threadID=95024">thread</a>I cant find the system uri,in the source code of the application!
    How should i proceed further?
    Thanks in advance.
    anticipating replies
    SwarnaDeepika

    Hi Swarna,
    Kindly try these steps..I have accumulated the points as per the discussions on mail.
    Just try all these steps..
    1) I hope you have created a J2EE application which has its own data source (i.e: tables in the Data Dictionary which has enteries for user and Password).
    2) Create a HTTP system for usermapping.
    3) After that perform all the steps as mentioned in the WebLog for the <b>App integrator</b>. (i.e: do the user mapping to the system by providing the User name and password.)
    4) In the J2EE Application write the code that If that username which you got from the URL and the userName in your data source is same then show him the main page directly, else show him the Login Page.
    5) Create a URL View in which you can put your application. Set the <b>admin,u</b>ser property from the User Management.
    I hope all these will solve your problem!! Kinldy check this!!
    Regards
    Pravesh

  • Unable to connect to the OracleForms application through a J2EE application

    Hi there,
    I have deployed a custom J2EE application in Middleware instance of my Oracle 10g AS 10.1.2
    The application is sso enabled . Once a user logs in the application he is able to see a jsp in which i display hyperlinks for him to access.
    One of these hyperlinks is pointing to the forms application.
    the url is http://psc-pc0592:7778/forms/frmservlet?config=abs_deploy[b]
    Once i click on the URL the forms applet begins to load but as the applet opens up i get the database logon screen.This should not happen
    I am already logged and have been verified by sso.
    Also the forms configuration is associated with a datasource.
    I am not able to get as to why i get that screen when it shoud directly connect to the forms application.
    Any help on this is appreciated.
    Thanks & Regards,
    Madhur Pant

    when you go through your carrier provider, there is an additional step in the SSL tunnel. Not sure how this transcribes, but it is possible that your carrier does not use the same port as the one you want it to use.
    The search box on top-right of this page is your true friend, and the public Knowledge Base too:

  • J2EE application access from Portal - P4ObjectBroker

    hey all,
    I want to access access a J2EE application (Web Service) from a Portal Component. The documentation at http://help.sap.com/saphelp_nw04/helpdata/en/c0/a584409db95537e10000000a1550b0/content.htm shows an example.
    They import the package <b>com.sap.engine.services.rmi_p4.P4ObjectBroker</b>. I cannot find the package on my system, i.e. my local portal installation.
    Does anybody know what kind of package is required, or where I can find this package...
    many thanks in advance
    cheers Sascha

    Hey Sascha,
    the P4ObjectBroker is part of the implementation of the P4 Provider Service on the J2EE Engine. It is part of the com.sap.engine.services.rmi_p4 package.
    If you can't find it I recommend you to search it using ClassLocator, it is a plugin that indexes all your packages and locates the propar class for you.
    You can download it at this link: http://sourceforge.net/projects/classlocator
    Read the instructions of how to use it with the NWDS, it is really simple. If you need more help do tell me.
    Regards,
    Roy

  • How to access a Portal User Info from a J2EE application?

    Hi,
    I have deployed a j2ee application in portal and its running fine.
    from that application i need to assign some roles to some users.i have the user id.
    so my doubt is can i access the portal user info from this j2ee application?i have some servlets in the j2ee application....can i get the portal user info from this servlet?
    plz help me
    regards,
    Visweswar

    Hi,
    Please check out this to get the portal user information from Java -
    WdClientUser class/Interface to aciehve this.
    Please check out these links on the same -
    WDClientUser.getClientUser IUser
    help needed
    Regards
    Lekha

  • Create J2EE Application in Release 6.20

    Hi All,
    I'm quiet new to SAP WAS.
    I read in the documentation that JAVA IDE (SAP NETWEAVER DEVELOPER STUDIO) is added start on Release 6.30 (Please, correct me if I'am wrong).
    If it so, how can I create J2EE application in Release 6.20. A brief explanation will be highly appreciated.
    Thanks,
    Edward (Indonesia).

    Hi Kalle,
    Thx, I have got the CD brom the Basis guy, and sucessfully installed it on my PC.
    But when I try to execute Stand Alone Server, this error occured:
    Loading core services:
      Starting core service monitor ... done.
      Starting core service p4 ... done.
      Starting core service log ... done.
      Starting core service dbms ... done.
      Starting core service security ... done.
    System Exception * Fail to start Naming. Exception is: java.security.AccessContr
    olException: access denied (com.inqmy.lib.security.DomainsEnumerationPermission
    ProtectionDomainEnumeration)
    java.security.AccessControlException: access denied (com.inqmy.lib.security.Doma
    insEnumerationPermission ProtectionDomainEnumeration)
            at java.security.AccessControlContext.checkPermission(AccessControlConte
    xt.java:269)
            at java.security.AccessController.checkPermission(AccessController.java:
    401)
            at com.inqmy.core.policy.PolicyManager.getProtectionDomainStack(PolicyMa
    nager.java:311)
            at com.inqmy.core.service.context.container.security.DefaultProtectionDo
    mainContext.getProtectionDomainStack(DefaultProtectionDomainContext.java:99)
            at com.inqmy.services.security.domains.ProtectionDomainManagerImpl.getPr
    otectionDomainStack(ProtectionDomainManagerImpl.java:96)
            at com.inqmy.services.jndi.InitialContextFactoryImpl.getInitialContext(I
    nitialContextFactoryImpl.java:72)
            at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:6
    62)
            at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243
            at javax.naming.InitialContext.init(InitialContext.java:219)
            at javax.naming.InitialContext.<init>(InitialContext.java:175)
            at com.inqmy.services.jndi.JNDIFrame.bindReferences(JNDIFrame.java:278)
            at com.inqmy.services.jndi.JNDIFrame.start(JNDIFrame.java:176)
            at com.inqmy.core.service.application.ApplicationServiceRunner.startFram
    e(ApplicationServiceRunner.java:55)
            at com.inqmy.core.service.container.ServiceRunner.run(ServiceRunner.java
    :126)
            at com.inqmy.core.thread.impl2.SingleThread.run(SingleThread.java:118)
      Starting core service naming ... done.
    Please Help.
    Warm regard,
    Edward.

Maybe you are looking for