Specify OC4J containers startup order

Hi,
we have defined several OC4j containers and we are now looking for a way to specifiy the startup order. Is there a way to specify in what order the OC4J containers must be started?
Thanks!
Steven

Are these OC4J containers all in the same Oracle Application Server Instance or different instances? If in the same instance, do you really want to specify your own order of startup or do you just want these to be started in sequence (vs. in parallel by default)?
To start components of an instance in sequence you can use "sequential=true" with opmnctl startproc command. Refer this for details:
http://download.oracle.com/docs/cd/B32110_01/core.1013/b28944/opmnctl.htm#CEGEJDBA
You can also specify your own order of startup by setting <dependencies> in opmn.xml. Refer this for details:
http://download.oracle.com/docs/cd/B32110_01/core.1013/b28944/common.htm#CJHCJECF
For example, if you have three OC4Js - oc4j1, oc4j2 and oc4j3 and you want these to start in that order, then:
- Within <process-type id="oc4j2" ...> block, add following after </module-data> and before <start ...>:
<dependencies>
<managed-process ias-component="OC4J" process-type="oc4j1" process-set="default_group"/>
</dependencies>
- Within <process-type id="oc4j3" ...> block, add following after </module-data> and before <start ...>:
<dependencies>
<managed-process ias-component="OC4J" process-type="oc4j2" process-set="default_group"/>
</dependencies>
Reload OPMN (opmnctl reload) and start your components. OC4Js now should start in defined order.
Hope this helps.
Thanks
Shail

Similar Messages

  • 9iAS with many OC4J Containers

    Hello,
    I am having a problem with a 9iAS farm. We've got an infrastructure (9.0.2 patched to 9.0.3) and on the Application Server we try to use more than 10 OC4J containers.
    After trying to start the 10-th container, there is a timeout error:
    dcmctl start -co OC4J_TMS1 -v
    ADMN-906025
    The exception, 806209, occurred at Oracle9iAS instance "servername.domainname.nl"
    "The send operation timeout has expired and reached the specified timeout value
    Inspect timeout value in the debug log, increase timeout or check opmn connection".
    Resolve the indicated problem at the Oracle9iAS instance where it occurred then resync the instance.
    This means that the Application Server AND the Infrastructure Server are unreachable.
    I have to stop all the processes (opmnctl stopall) and start the first nine with the dcmctl tool. If I stop the processes on the Application Server, than the Infrastructure becomes available.
    But everytime I try to start the 10-th .. it fails. I have tried to put a max memory java option into the OC4J-container but it didn't help.
    We've got this problem on a machine with 768MB internal memory and one with 512 MB memory.
    I tried to minimize the max memory with this option:
    <java-option value="-Xmx24M" />
    Anyone an idea?

    Hi
    We are running 4 JVMS on a machine with 8Gig of Ram. I do think givving only 24 Meg for each JVM will not even allow it to start(Open for correction here).
    This looks like a terrible shortage of resources on the machine

  • Can i have the same application in two different oc4j containers?

    Hi,
    I have developed one J2EE application and still the updation is going on. So i wanted to to deploy the application in two different oc4j containers. so that one will be having the working version of my application and the users can use that application. I want to use the second container as my test application, in that i can modify and test. The deployment of my application in two different containers went fine. But when i try to access the web application with the context, it is serving from the latest deployment for my request.
    My question is :
    1) Can i use both applications with different Oracle HTTP server port numbers??
    2) All the HTTP requests are passed to the oc4j containers by AJP13 protocol through AJP port to the OC4J containers. where is the mapping between the OHS and AJP protocol defined ??? ie., the requests from this http port have to be transferred by AJP protocol through AJP port to this OC4J container ???
    3) Or i have to have two different installations of Oracle9iAS ???
    Please help me to solve my issues...
    Robert D

    Different ohs port numbers would not help as there is only 1
    $iashome/Apache/Apache/conf/mod_oc4j.conf
    You can pick a different context_root name for your test app.
    Ken

  • Multiple OC4J containers on OAS 10.1.2

    We've had problems with sporadic lockup/failure of our OAS 10g (v10.1.2.0.2) app server. We suspect it is something to do with a particular application that serves as a kind of menu to other apps. It uses a lot of ADF controls and is highly abstracted and configured via database table entries.
    As a step toward isolating the issue, we created a new OC4J instance in which this menu app will run, named "oc4j-menu". We then undeployed the 4 pieces of the menu app from the original "home" OC4J instance and deployed the 4 pieces to the new "oc4j-menu" instance.
    The starting page of the menu application came up, and supplying username/password seems to lead to the normal processing steps prior to the first user page. But then the process displays our defined error page with a message that indicates a session cookie was sought but not found among the cookies in the request. This process worked without error when it was in the original "home" container.
    We use Log4J for logging and define the log path as "log/menu.log". In the original "home" container the log would write to $ORACLE_HOME/j2ee/home/log/menu.log. Once undeployed from "home" and deployed to "oc4j-menu" I expected the log to be written to $ORACLE_HOME/j2ee/oc4j-menu/log/menu.log. It is not. It is still writing to the original log in "home". I've verified that the 4 pieces of the menu app are in fact undeployed from "home" and exist in "oc4j-menu".
    I've looked about in the EM console looking for a leftover reference to the "home" container or path, but see none.
    Any ideas? I think a first step in troubleshooting is to discover why the app is still acting/logging as though it were in "home". Any other advice is greatly appreciated.
    The idea of the menu app is that it authenticates via LDAP/OID and presents a list of authorized applications. This list is implemented as HTML links. Clicking on a link launches the desired app in a new browser window. I want to make sure that the end user sees no difference now, specifically that the launch URL of an app is not needing to be altered.
    Thank you for any help.

    Correcting this issue required stopping ALL OC4J containers, then restarting them. It would appear that there were hanging references somewhere...likely in memory, since none of the config files such as server.xml held any references to the subject app any longer.

  • DIfferent OC4J containers for each Component

    So far all the information I've read is related to SCA modeler, etc... I still haven't found info about how this components actually works inside OAS, for example, in ORACLE 10.1.3.3 ESB had to main components, ESB RT and ESB DT.
    My question is, will it be possible to deploy components such as Oracle Mediator, Business Events, BPEL, etc, in different OC4J containers? will Oracle SOA Manager work if these components are deployed in different containers? will High Availability infrastructure for these SOA components will be similar to 10.1.3.3?

    Use the requiredMessage attribute of the input component (or validatorMessage or converterMessage attributes), assuming you are using JSF 1.2.
    Note that the standard messages include the label attribute of the components as a parameter automatically.

  • Cannot determine Clusterware startup order from configuration

    Just started reading up on Clusterware. I'm used to systems like VCS where you explicilty linked all resources in a graphical tree. Now that I've finished my first RAC installation I'm finding it tough to determine the startup order of resources in Clusterware via command line tool inspection.
    Are there some implicit rules that I'm missing? I presume all my nodeapps are started up first?
    $ORA_CRS_HOME/bin/srvctl status nodeapps -n rac1
    VIP is running on node: rac1
    GSD is running on node: rac1
    Listener is running on node: rac1
    ONS daemon is running on node: rac1
    After that I have tried linking everything together using crs_stat -p | egrep "NAME|REQUIRED_RESOURCES"
    1. No dependancies
    NAME=ora.racX.gsd
    NAME=ora.racX.ons
    NAME=ora.racX.vip
    NAME=ora.mydb.MYDB_BASIC_TAF.cs
    NAME=ora.mydb.MYDB_BASIC_TAF.mydb2.srv
    NAME=ora.mydb.MYDB_NO_TAF.cs
    NAME=ora.mydb.MYDB_NO_TAF.mydb1.srv
    NAME=ora.mydb.db
    2. Dependancies on VIP
    NAME=ora.racX.ASMx.asm
    REQUIRED_RESOURCES=ora.racX.vip
    NAME=ora.racX.ASM_RACx.lsnr
    REQUIRED_RESOURCES=ora.racX.vip
    NAME=ora.racX.LISTENER_RACx.lsnr
    REQUIRED_RESOURCES=ora.racX.vip
    3. Dependancies on ASM
    NAME=ora.mydb.mydb1.inst
    REQUIRED_RESOURCES=ora.rac1.vip ora.rac1.ASM1.asm
    NAME=ora.mydb.mydb2.inst
    REQUIRED_RESOURCES=ora.rac2.vip ora.rac2.ASM2.asm
    What's throwing me off is the following in group 1...
    NAME=ora.mydb.MYDB_BASIC_TAF.cs
    NAME=ora.mydb.MYDB_BASIC_TAF.mydb2.srv
    NAME=ora.mydb.MYDB_NO_TAF.cs
    NAME=ora.mydb.MYDB_NO_TAF.mydb1.srv
    NAME=ora.mydb.db
    I don't get to see the object type of the aforementioned resources using crs_stat -p but it must be registered somewhere as when I walk through $ORA_CRS_HOME/bin/srvctl status database|service|nodeapps|asm I can see the different object groups.
    Is there an implicit startup hierarchy via object types?
    Also I am getting "CRS-0181: Cannot access the resource profile 'ora.rac1.ASM1.asm'" errors when I try to use crs_profile -print with resource names obtained via crs_stat. What am I doing wrong.
    Apologies if have missed a key Oracle document or concept in my haste; please feel free to point me towards it if so.

    The resource *.db will come up as soon as an *.inst is started.
    Therefore the dependency on the *.inst is neither required (since only 1 has to be up), nor optional (since minimum 1 has to be up). This information cannot be seen in the OCR.
    A service always depends on the *.db resp. *.inst service based on the hosting members. However since a "service" can failover to another node (available) this is also some weeker dependency than required but more then optional. Therefore also not directly displayed, but you get a connection via. the Hosting Members.
    So you get an implicit connection:
    A service (*.cs) requires a service member (*.srv) to be up.
    A (*.srv) requires a *.inst to be up. Since the service information are also in the database (dba_services). And the *.db needs an *.inst to be up.
    To get you more confused the ASM dependency on the VIP is removed with 10.2.0.3 also. More Information on that: Note 401783.1: Changes in Oracle Clusterware after applying 10.2.0.3 Patchset.
    Now to your error: I definitely would recommend opening a service request, if you get this error as root user, since you may have an error in the OCR. If it is oracle user see if the oracle user is in group oinstall and your ocr disk has root:oinstall 660.

  • ORA 01008 error on OC4J containers

    I have an application which runs perfectly when orion containers (1.0.2.2.1) are used. But when the same application is deployed and run using oc4j containers (9.0.3.0.0), i get the ORA 01008 exception. I agree that I didnt change any of the settings while changing the containers as I had thought that both the containers act in a similar fashion. Isnt the method of deploying the same in both the containers? Please help me. Thank you.

    Thank you. Here is a part of the error I get:
    Remote Exception: Transaction was rolled back: Database error: java.sql.SQLException: ORA-01008: not all variables bound; nested exception is:
    java.sql.SQLException: ORA-01008: not all variables bound
    com.evermind.server.rmi.OrionRemoteException: Transaction was rolled back: Database error: java.sql.SQLException: ORA-01008: not all variables bound
    at HelloWorld_EntityBeanWrapper0.setXXX(HelloWorld_EntityBeanWrapper0.java:36269)
    Moreover, the application runs perfectly well when the orion containers are used. So, I dont think that there is any problem at the application side.
    Even then I worked on the ORA error. It has something to do only if some PL/SQL statements are used/executed. But, as you know, I am getting this error eventhough a container managed entity bean is used. I am unable to think of anything else. Please help me.

  • BPEL process startup order

    Is there any way of controlling the startup order of bpel processes when the Application server is restarted? We are facing a problem where processA calls processB on server startup (timer has expired), but processB has not yet been started by the application server. We get error "Failed to read wsdl" as processB wsdl has not yet been loaded. We want to make sure that processB is always started before processA.
    We are using Oracle Soa Suite 10.1.3.1.

    I have no experience with it but there is possibility to catch exception and repeat invoke until processB is not loaded.

  • Is there any way to pass in JVM tunable params to OC4J containers?Ex: -Xmx256 ...

    Is there any way to pass in JVM tunable params to OC4J containers?
    1. Switch to -server rather than -classic
    2. Min/Max Memory configuration
    3. pass in tunable GC params
    Passing parameters to the JVM when executing dcmctl does not pass these variables to the exec-ed java process(OC4J Containers).
    Any help is appreciated.
    Thanks,
    Vamsi Nukala

    Hello
    say I like to pass object I created in one page say :
    MyObject obj = new MyObject("1","2","3");
    via http params (supmit or post ) to other page . and
    use it there can it be done ?No. You can however place them as attributes in scope (application/session/request) and retrieve these attributes in the next page.
    example
    in one page,
    session.setAttribute("obj", obj);
    in another page
    MyObject obj = (MyObject)session.getAttribute("obj");
    ram.

  • What is the recommended maximum number of oc4j containers to create in iAS

    We have about 40 j2ee applications which we would like to deploy on iAS. Our developers requested that we have 1 container per application. Is it recommended to have 40 containers created in iAS. What are the best practices?
    Thanks.

    Unless you have a server/server farms with lots of memory i dont recommend you do create 40 OC4J containers.
    Can you someway group your applications ?
    you can create one OC4J instance for HR applications, one for maintenance, other for Call Center Applications, another for Finantial ,Department application and so on ...
    Also you can group by resources consumed/critical level, i.e. you create several oc4j container , separate applications wich require more memory ou more session ...
    In my environment i have several applications sharing common oc4j instances running ok
    Just some ideias.
    Best Regards

  • Partition startup order is undefined

    If you are "running distributed" out of the repository,
    the partitions will start up in numerical order, but
    this no longer happens when you make a distribution.
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

    You have the control to define the partition startup by using ESCRIPT , and its very fast.
    Ex
    findsubagent xxx_cl0
    findsubagent xxx_cl0_part1
    startup
    findparentagent
    findsubagent xxx_cl0_part10
    startup
    etc..,
    Sivaram
    From: Geoff Puterbaugh <[email protected]>
    Reply-To: Geoff Puterbaugh <[email protected]>
    To: [email protected]
    CC: [email protected], [email protected], [email protected]
    Subject: Partition startup order is undefined
    Date: Thu, 22 Apr 1999 14:17:27 -0400
    If you are "running distributed" out of the repository,
    the partitions will start up in numerical order, but
    this no longer happens when you make a distribution.
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>_______________________________________________________________
    Get Free Email and Do More On The Web. Visit http://www.msn.com
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

  • OC4J containers sometimes don't stop/start?

    Occasionally when I do opmnctl stopall or startall, an OC4J container will fail to start or stop. Sometimes I get the "forcibly shutting down..." message from opmnctl. Sometimes it just sits there. Sometimes it shuts down but a 'ps -ef | grep oracle' shows some hanging processes.
    Likewise sometimes on startup a component just won't start. It'll 'init' for a while, then drop back down to status = 'NONE'. But, I can go into OEM ASC and start it up there and it'll start right up!
    This is not consistent at all. This is 9.0.4 (10g).
    Any ideas? Anyone experience this sort of weirdness? So far it's not terribly confidence-inspiring.

    Depending on the environment, it may be necessary
    to modify the start, stop, and/or restart timeouts
    for components, as configured in $OH/opmn/conf/opmn.xml
    These elements, if not specified in opmn.xml for
    a component default to the following:
    start: 120 seconds
    stop: 60 seconds
    restart: 180 seconds
    The opmnctl startall/stopall commands result in the
    simultaneous start/stop of all configured components.
    If the machine is sufficiently powerful, this will
    result in all components completing the state
    transistion faster than if the components were
    started/stopped serially. Component initialization
    and shutdown can be resource intensive. Contention
    between components starting/stopping at the same time
    can lead to longer stop/start times compared to the
    time it takes to start/stop a component by itself.
    The different in behavior between OEM and opmnctl
    might be explained if a smaller set of components
    is being started/stopped by the OEM operation than
    the opmnctl operation. Another possibility is that
    the OEM operation is resulting in multiple, serial
    requests to start individual components instead of
    starting everything in parallel.
    How might this be investigated? $OH/opmn/logs/ipm.log
    now prints with timestamp command begin/end and info
    about the processes started/stopped as part of the
    command. You can see something like this:
    20:00:00 Request 4 Started. Command: start
    20:00:00 Starting Process: OC4J~home~default_is...
    20:00:00 Starting Process: HTTP_Server~HTTP_Ser...
    20:00:11 Process Alive: HTTP_Server~HTTP_Server...
    20:00:32 Process Alive: OC4J~home~default_islan...
    20:00:32 Request 4 Completed. Command: start
    This example shows a start command that resulted
    in the simultaneous start of HTTP_Server and an
    OC4J. HTTP_Server took 11 seconds to start,
    OC4J took 32 seconds to start.
    Compare the ipm.log output generated from the opmnctl
    and OEM operations. opmnctl and OEM use the same
    protocols to interact with opmn to perform process
    control requests.
    My guess is that the opmnctl operation is doing more
    work in parallel and is overloading CPU resulting
    in longer delays. I would be interested in seeing
    ipm.log output (at default log level) from the
    startall/stopall operation and a brief machine
    description.

  • Startup Classes w/ Arguments and Startup Order

    Hi,
    I know we can control the order of startup classes by specifying them in a
    comma delimited list like this:
    weblogic.system.startupClass.a=class1,class2,class3
    Now what if class1 and class2 have several startup arguments that I need to
    pass??? I would hate to think that I'll have to write my own startup
    manager just to do this one simple thing?
    So... if anyone knows how to specify startup arguments AND control the order
    of startup classes please let me know...
    Thanks in advance,
    Stephen Earl
    SmartPoint, Inc.

    Hi Don,
    I've attempted to mirror the functionality of the Weblogic startup system
    with no success. Basically I have an xml document specifying the startup
    specifications much like the WL startup system (ie. Description, ClassName,
    Args). To mirror the WL system I apparently need access to StartupThread
    which, like most other WL classes, is undocumented and unexposed for use.
    How would you suggest implementing such functionality??? Considering that
    I'd like to have similar functionality to the current system (ie.
    T3StartupDefs, RMI Servers, etc.) how can I and any other BEA customer
    achieve this short of rewriting the startup mechanism???
    Stephen Earl
    SmartPoint, Inc.
    "Don Ferguson" <[email protected]> wrote in message
    news:[email protected]...
    I have looked over the source code for startup classes and how thearguments
    are processed, and I'm afraid I don't see any mechanism to accomplish what
    you want, i.e., to specify the order that startup classes are executed,
    and provide names-value pairs that are associated with each class.
    You might have to come up with your own mechanism for associating
    arguments with startup classes.
    Anne-Katrin Schroeder-Lanz wrote:
    well, if you absolutely must have identically named args for each class,
    then you're stumped. should you be able to extract any kind of support
    from
    BEA here, I'd appreciate a notification, since we've got the sameproblem to
    deal with.
    happy hacking, anne
    Anne-Katrin Schroeder-Lanz
    Development
    memIQ AG
    T: +49-89-45639-19385
    F: +49-89-45639-33-385
    mailto:[email protected]
    "Stephen Earl" <[email protected]> wrote in message
    news:[email protected]...
    OK... and now say that I have a startup argument called RETRIES. This
    argument needs to be 10 for startup class A and 20 for startup class
    B.
    Now
    way I can see to handle this situation.
    BEA... I've logged a production 3 case regarding this issue and have
    not
    even received an initial response from support. Hello... Hello...
    Steve...
    "Anne-Katrin Schroeder-Lanz" <[email protected]> wrote in message
    news:[email protected]...
    hi,
    just use the startArgs as documented on the list of startup classes
    and
    pass
    a collective list of args, e.g.:
    weblogic.system.startupClass.<logical_name>= xxx.yyy.Foo,
    xxx.yyy.Bar
    weblogic.system.startupArgs.<logical_name>= arg4Foo=some_value,
    arg4Bar=another_value
    hth,
    cheers, anne
    Anne-Katrin Schroeder-Lanz
    Development
    memIQ AG
    T: +49-89-45639-19385
    F: +49-89-45639-33-385
    mailto:[email protected]
    "Stephen Earl" <[email protected]> wrote in message
    news:[email protected]...
    Hi,
    I know we can control the order of startup classes by specifying
    them
    in
    a
    comma delimited list like this:
    weblogic.system.startupClass.a=class1,class2,class3
    Now what if class1 and class2 have several startup arguments that
    I
    need
    to
    pass??? I would hate to think that I'll have to write my own
    startup
    manager just to do this one simple thing?
    So... if anyone knows how to specify startup arguments AND controlthe
    order
    of startup classes please let me know...
    Thanks in advance,
    Stephen Earl
    SmartPoint, Inc.

  • Urgent :- Issue with OC4J component startup - Please help.

    Hello Oracle Gurus,
    We are facing a very strange problem with the startup of OC4J home and the component is not starting up.
    The application server we are using is Oracle 10G 9.0.4.
    Please could you guide me as to what could be wrong so that we could resolve this problem ?
    Thanks and Regards,
    Ramanan.
    We checked up the logs and we found the following errors -
    "06/05/09 14:38:19 Start process
    06/05/09 14:38:24 Warning: Error reading transaction-log file (/u01/gcube1/oracle/j2ee/home/persistence/home_default_island_1/transaction.state) for recovery: premature end of file
    06/05/09 14:38:24 Forced or abrupt (crash etc) server shutdown detected, starting recovery process...
    06/05/09 14:38:24 Recovery completed, 0 connections committed and 0 rolled back...
    06/05/09 14:51:03 Start process
    06/05/09 14:51:12 Warning: Error reading transaction-log file (/u01/gcube1/oracle/j2ee/home/persistence/home_default_island_1/transaction.state) for recovery: premature end of file
    06/05/09 14:51:12 Forced or abrupt (crash etc) server shutdown detected, starting recovery process...
    06/05/09 14:51:12 Recovery completed, 0 connections committed and 0 rolled back...
    06/05/09 14:56:11 Start process
    06/05/09 14:56:17 Warning: Error reading transaction-log file (/u01/gcube1/oracle/j2ee/home/persistence/home_default_island_1/transaction.state) for recovery: premature end of file
    06/05/09 14:56:17 Forced or abrupt (crash etc) server shutdown detected, starting recovery process...
    06/05/09 14:56:17 Recovery completed, 0 connections committed and 0 rolled back..."

    Hello Deepak,
    Thanks very much for your prompt reply to my problem.
    I tried to do what you mentioned in your reply to me, but still could nt manage to get the OC4J component up and running. We suspect that it may be some installation issue and we are blowing up the existing installation to make a fresh one on a new machine.
    Will keep your suggestions in mind , they really help me out and am learning :-)
    Have a great day and thanks once again !
    Best Regards,
    Ramanan.

  • Ejb lookup and oc4j container startup

    I have a servlet that is set to auto start on container startup that does a lookup on a ejb in another container. jndi locates the ejbhome but fails to load the class for the ejb home. It knows the name of the class but the classloader cannot find it. This same servlet works fine after the container has started up.
    It feel the problem is a classloader problem or a restriction by oracle. Any help is appreciated.
    Why can't the OC4J default application that auto starts servlets at container startup not find the ejbhome class?
    David Jacobs

    We have previously done it, but it only worked when we are using in 10g AS R1. But now, we are porting to R2, but it doesn't work. We didn't do any other things, just a simple lookup using the url, context factory. In R1 it worked fine, in R2, we are encountering the same, NameNotFoundException. Hope someone could help us also with this. Another thing, when we are using ormi://<rest of url>, it doesn't return any exception and our application hangs, but if we use opmn:ormi://<rest of URL>, that's the time it throws the NameNotFoundException. In R1, we didn't have any problems.

Maybe you are looking for