State replication in weblogic 5.1

          Hi All,
          I am using weblogic 5.1 in a clustered environment
          I am developing a web based application which displays an HTML form which contains
          several pre-filled combo box.
          The data of these combos will come from several Master tables of the database.
          I intend to provide this data in the form of a collection to my presentation layer,
          which then formats it for display in the combo's. This collection is returned
          as a result of a method call (e.g. getCompanyData()) on an entity ejb deployed
          on WLS. This entity ejb is not mapped to any particular table. It contains several
          member variables which are collections of the master data I need for the combos.
          Now I also have another HTML form which adds/modifies these collections in the
          entity ejb and inserts/updates the same in the master table in the database.
          Since I have a clustered environment for every above operation that is performed
          I need to replicate the state of the entity ejb of whose member variable is modified
          to all instances of the WLS in the cluster.
          Any suggestions ?
          thanks a lot in advance
          Devdatt
          

Since I have a clustered environment for every above operation that          > is performed I need to replicate the state of the entity ejb of whose
          > member variable is modified to all instances of the WLS in the cluster.
          If you want to replicate the state without having to always go to the
          database, use our Coherence product.
          Peace,
          Cameron Purdy
          Tangosol, Inc.
          http://www.tangosol.com/coherence.jsp
          Tangosol Coherence: Clustered Replicated Cache for Weblogic
          "Devdatt" <[email protected]> wrote in message
          news:3e6326c1$[email protected]..
          >
          

Similar Messages

  • State replication on weblogic

    I am building a chat server using weblogic. Our environment is such
              that it has 2 servers (call them A & B) in a clustered weblogic
              environment. There is a load balancer sitting on top of the 2 servers
              so that every HTTP request can be load balanced over the 2 servers.
              When a user logs in to the chat server, the user is put in a queue.
              When another user logs in, this second user should be able to see all
              the logged in users. If there had been only one server, that state
              could have been easily maintained. But, since there are 2 servers,
              there is a need to constantly synchronize the state across the 2
              servers since the first users login request might go to server A and
              the second users request to server B. Using the database is one option
              but it is very slow for chat server purposes.
              Is there is a way to use EJB or HTTP persistence/replication in this
              scenario?
              Thanks,
              Akash.
              

    Coherence provides the only coherent replicated cache for Java:
              http://www.tangosol.com/coherence.jsp
              (BTW - Coherence 2.0 goes GA today!)
              Peace,
              Cameron Purdy
              Tangosol, Inc.
              http://www.tangosol.com/coherence.jsp
              Tangosol Coherence: Clustered Replicated Cache for Weblogic
              "Akash Jain" <[email protected]> wrote in message
              news:[email protected]..
              > I am building a chat server using weblogic. Our environment is such
              > that it has 2 servers (call them A & B) in a clustered weblogic
              > environment. There is a load balancer sitting on top of the 2 servers
              > so that every HTTP request can be load balanced over the 2 servers.
              >
              > When a user logs in to the chat server, the user is put in a queue.
              > When another user logs in, this second user should be able to see all
              > the logged in users. If there had been only one server, that state
              > could have been easily maintained. But, since there are 2 servers,
              > there is a need to constantly synchronize the state across the 2
              > servers since the first users login request might go to server A and
              > the second users request to server B. Using the database is one option
              > but it is very slow for chat server purposes.
              >
              > Is there is a way to use EJB or HTTP persistence/replication in this
              > scenario?
              >
              > Thanks,
              > Akash.
              

  • Session State Replication of Referenced Objects

    Here is question on Clustering and Session state replication:
              Scenario:
              Consider two Session Objects A and B.
              Object A has-a reference to object B.
              So whatever changes done to Object B is reflected in Object A.
              In-memory Session replication happens on every HttpSession.setAttribute() call.
              The question is will the two session objects(A and B) be replicated to the other cluster and will still maintain the reference relationship or will they be two separate objects with same data (in different memory locations).
              regards,
              Jaiganesh

    Ok, I have been meaning to dig into session replication in a bit more detail and your question is a good excuse to do it!
              First stop the docs:
              Bea Docs
              The bits that jump out are under:
              Programming Considerations for Clustered Servlets and JSPs
              1) Session Data Must Be Serializable, so both your objects are serializable.
              2) Use setAttribute to Change Session State In an HTTP servlet that implements javax.servlet.http.HttpSession, use HttpSession.setAttribute (which replaces the deprecated putValue) to change attributes in a session object. If you set attributes in a session object with setAttribute, the object and its attributes are replicated in a cluster using in-memory replication. If you use other set methods to change objects within a session, WebLogic Server does not replicate those changes. Every time a change is made to an object that is in the session, setAttribute() should be called to update that object across the cluster.
              Likewise, use removeAttribute (which, in turn, replaces the deprecated removeValue) to remove an attribute from a session object.
              >Will the reference as shown in the step 3 will be >maintained after replication on the other cluster ?? I >guess not!!
              I don't understand "on the other cluster" There is normally one cluster made up of a few servers. The session state is maintained on one primary server and a secondary server. So you have aObj.a2 = bObj, from the docs I would understand that at the momment you called session.setAttribute the aObj and all its fields provided they are seriliazable will be replicated in Mememory.
              >There the aObj and bObj stored in the two different >session objects will not have a reference relationship >in other words if i change bObj on the other cluster >will the reference a2 of aObj be able see it ??
              This is testing the limits of my understanding, but would have thought if the objects are in different sessions they should not be able to reference each other in the manner I think you are suggesting, so if I access aObj.a2 (an instance of bObj) and changed it in one session it should not affet any other bObj unless bObj is a singleton....I think!
              What say you?

  • State Replication option..

    Is there some way of specifying whether the state replication should happen synchronously or asynchronously.
              Also, is there some way that the state replication decision can be made custom driven. By this i mean user writing the code which decides whether the state has changed and needs to be communicated. This could be useful in a Stateful session bean where one might like to decide when to replicate (i.e. on change of which all atrributes should the replication occur).
              JBoss has a mechanism by which we can specify a mehtod isModified which should return boolean, which is called before replicating the state. THis helps in achieving fine-grained replcation.

    For stateful sessoin EJBs the container automatically determines whether you've modified anything and sends the minimal diff across the wire. There's no need to write an isModified method (which I would consider a little error-prone and cumbersome).
              The replication is always done synchronously. There is no option currently to make it async but other people have asked for it.
              -- Rob
              WLS Blog http://dev2dev.bea.com/blog/rwoollen/

  • Session state replication taking time to replicate in weblogic cluster

    I have a application fully serialized code with WEB-INF/lib containing the below configs with Unicast communication.
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
    <weblogic-web-app>
      <session-descriptor>
        <session-param>
          <param-name>TimeoutSecs</param-name>
          <param-value>1800</param-value>
        </session-param>
                    <cookie-http-only>false</cookie-http-only>
      <persistent-store-type>replicated_if_clustered</persistent-store-type>
                    </session-descriptor>
    </weblogic-web-app>
    OHS plugin is having below config
    LoadModule weblogic_module   "${ORACLE_HOME}/ohs/modules/mod_wl_ohs.so"
    <IfModule mod_weblogic.c>
    WebLogicCluster 172.12.113.141:7006,172.12.113.140:7006
            MatchExpression /finapp/*
    </IfModule>
    And weblogic cluster is replicating session instantly when ever there is some activities happening in the application.
    It is having a problem only in below scenario when the session is open but the user is not doing anything.
    I have 2 nodes in the cluster if one goes down(currently request serving one) it is failing over to the next but the session is not getting copied instantly. Below is the scenario where it works fine and where the replication is delayed.
    1. Both servers(server1,server2) up for some time and user logs in and is continuing work.
    2. primary server(server1) crashes in middle, secondary(server2) will take over the existing session and you will see user will be continuing the work without any issues(no logouts).
    3. After sometime server1 comes up online, user keeps on testing(clicking some tab which makes a request to server), you will see the server1 will have a replica of server2 instantly.
    4. You can bring down the server2 now and you will see the users session will not interrupt and user will be able to continue session with the server1.
    Now coming to the scenario where you will be able to delayed replication :
    1. Both servers up and user logged in and started work.
    2. Primary server(server1) goes down and secondary server(server2) will take over the session and let the user continue its work without any logout.
    2. server1 comes back online and user is not doing anything(no clicks) with application just kept the session open and server2(primary session) goes down within the replication time then the user will get logged out and might see some erratic behavior in any applications deployed to that weblogic. (We saw that if we dont shutdown server2 immediately(within 1min) and wait for 5mins+ weblogic is copying  the session from server2 to server1. After that copy if we shutdown the primary server(server2) user is not having any issues)
    To summerize if a session is active(logged in) and some activity(clicking) is going on then replication is happening instantly from primary to secondary but if the user is active(logged in) and not doing anything(not clicking) then the session from primary to secondary is taking 5minutes+
    Please let me know if there is some weblogic configs to check to reduce this time lag and let weblogic copy the session continuously either the user is performing any activity or not in the logged in session.
    Thanks,

    Hi,
    This is the expected behavior. Please take a look at this document: WebLogic Server - Session Replication/Failover Scenario When Only One Server In Cluster is RUNNING (Doc ID 1292033.1)
    In a WebLogic Server domain, with a Cluster of 2 Managed Servers and a web application deployed on this Cluster, you have only one managed server running and then you make a request through a proxy server to access the application.
    The default cookie which is JSESSIONID will be created something like
    <SessionID>!<PrimaryJVMID>!NONE
    Here, you see the secondary server as NONE as there is only one server in cluster running.
    Now, you leave HTTP session idle, meaning there will be no activity and requests in it.
    Now, you bring up the second managed server instance in the cluster. The JSESSIONID for the earlier created HTTPSession will be unchanged: still
    <SessionID>!<PrimaryJVMID>!NONE
    unless there are any requests made or activity in it.
    At this point of time, if there is a failure of the Managed server, the idle in-flight HTTP Sessions which were created earlier when this managed server was RUNNING, will be dropped and there will be no failover. Only active HTTP Sessions which have a secondary JVM ID will be failed over to the secondary managed server.
    At any point, if subsequent requests are made and if any activity is made to the Idle HTTP sessions which were earlier created, the JSESSIONID gets updated with the secondary JVMID and sessions gets replicated and failed over in case of server crash.

  • Session state replication

    Hi.
    Has anyone got the session replication in OC4J to work
    on Windows 2000?
    We're running a 9.0.2 infrastructure and two clustered
    9.0.3 9iAS application servers, that are supposed to
    replicate HTTPServletSession state.
    We are using the default_island on a separate OC4J
    instance that are configured via Enterprice Manager to
    use multicast IP 230.0.0.1 and port 9127 (default).
    The tag <cluster-config/> is present in the file
    orion-web.xml and the <distributable/> tag is present in
    the web.xml in the WAR-file.
    No EJBs are used - only JSPs and servlets.
    Any suggestions?
    Thanks!
    Jesper

    Hi,
    This is the expected behavior. Please take a look at this document: WebLogic Server - Session Replication/Failover Scenario When Only One Server In Cluster is RUNNING (Doc ID 1292033.1)
    In a WebLogic Server domain, with a Cluster of 2 Managed Servers and a web application deployed on this Cluster, you have only one managed server running and then you make a request through a proxy server to access the application.
    The default cookie which is JSESSIONID will be created something like
    <SessionID>!<PrimaryJVMID>!NONE
    Here, you see the secondary server as NONE as there is only one server in cluster running.
    Now, you leave HTTP session idle, meaning there will be no activity and requests in it.
    Now, you bring up the second managed server instance in the cluster. The JSESSIONID for the earlier created HTTPSession will be unchanged: still
    <SessionID>!<PrimaryJVMID>!NONE
    unless there are any requests made or activity in it.
    At this point of time, if there is a failure of the Managed server, the idle in-flight HTTP Sessions which were created earlier when this managed server was RUNNING, will be dropped and there will be no failover. Only active HTTP Sessions which have a secondary JVM ID will be failed over to the secondary managed server.
    At any point, if subsequent requests are made and if any activity is made to the Idle HTTP sessions which were earlier created, the JSESSIONID gets updated with the secondary JVMID and sessions gets replicated and failed over in case of server crash.

  • Problem with File Based replication in Weblogic Express 10

    Hi,
              We have Web application (exploded war) file deployed on Weblogic Express 10, to a Cluster of three Managed Servers (all three on different physical machines).
              We are using File based session persistance in weblogic.xml
              We have a shared location for all the three servers where we will be sharing the Session data.
              When we start the application, its works fine and is very fast, but after sometime the application slows down.
              Troubleshooting the Issue we found that its a problem with file based replication. By using File based replication every user session is stored in form of directory inside shared directory. So after sometime thousands of directories are created inside the shared directory where the session information is stored. So when we access the application, its waiting for lot of time with Message Session Monitor .... (this is because its browsing through the shared session storage directory for lot of time for session information as it has lot of directories) and finally after a long time like 10 mins we get the Application Home Page.
              When we clean up all the saved sessions inside shared directory, the application works fine, But we will see the same sometime later may be after 3 or 4 hours when the shared session directory has lot of session information stored in it.
              Is there a way to clean up the saved session information on file system as soon as that user session is closed by using file based replication.
              We cannot used Inmemory replication as our Appl doesnt support it.
              Please advice as it is a major show stopper in our Production Mirror env.
              Weblogic Consultant

    It is possible to reduce number of live session by configuring very low timeout-secs weblogic.xml. Default is 60 minutes.
              More details are here..
              http://e-docs.bea.com/wls/docs100/webapp/weblogic_xml.html#wp1071982
              Jayesh
              Yagna Sys

  • Clustered session state replication

              We are new to WebLogic, vrs 8.1 server, and are trying to get session states to
              replicate within a cluster. We believe everything is set up per the Bea docs but
              in the end "the state" on the secondary does not seem to exist, or we do not know
              how to see it.
              Our environment:
              A domain with one admin server and four managed servers on a Sun server. Three
              of the managed servers are in a cluster, the fourth is the proxy server dispatching
              to the cluster using WebLogic HttpCluteredServlet. The app deployed to the cluster
              has the weblogic.xml session parameter for PersistentStoreType set to replciated.
              Everything runs fine till the end: A call to the app is received at the ProxyServer
              and is routed to a server in the cluster. The servlet creates a session object
              for the user. When the user executes the servlet a second time the session object
              is updated and a count is displayed to the user for each subsequent hit to the
              servlet. The session object (a java object) is serialized. Then we kill the primary
              server that is used to comunicate with the user requests. The proxyServer then
              directs the user to a different server within the cluster as it should, but the
              session object from the primary server (now killed) does not appear to be on the
              new server since a new session object gets created.
              Any ideas?
              

    Warren Anderson wrote:
              > We are new to WebLogic, vrs 8.1 server, and are trying to get session states to
              > replicate within a cluster. We believe everything is set up per the Bea docs but
              > in the end "the state" on the secondary does not seem to exist, or we do not know
              > how to see it.
              >
              > Our environment:
              >
              > A domain with one admin server and four managed servers on a Sun server. Three
              > of the managed servers are in a cluster, the fourth is the proxy server dispatching
              > to the cluster using WebLogic HttpCluteredServlet. The app deployed to the cluster
              > has the weblogic.xml session parameter for PersistentStoreType set to replciated.
              >
              > Everything runs fine till the end: A call to the app is received at the ProxyServer
              > and is routed to a server in the cluster. The servlet creates a session object
              > for the user. When the user executes the servlet a second time the session object
              > is updated and a count is displayed to the user for each subsequent hit to the
              > servlet. The session object (a java object) is serialized. Then we kill the primary
              > server that is used to comunicate with the user requests. The proxyServer then
              > directs the user to a different server within the cluster as it should, but the
              > session object from the primary server (now killed) does not appear to be on the
              > new server since a new session object gets created.
              >
              > Any ideas?
              Did you make sure everything in the session is serializable or remote?
              -- Prasad
              

  • Configuring replication in weblogic 6.0

              Hi, I was reviewing the weblogic 6.0 docs in configuring in memory replication
              in a cluster. It says to set persistentstoretype parameter to replicated in the
              Web.xml. Can you show me an example of how this is set up in web.xml. In the 6.1
              docs it says that this is configured in weblogic.xml and it shows an example of
              the <session-descriptor> element. I'm not sure what tags should be surrounding
              in web.xml though. Or can I just use weblogic.xml only for this configuration
              in 6.0.
              Thanks
              

    This is a setting in weblogic.xml only.
              Paul
              "Jane" <[email protected]> wrote in message
              news:[email protected]..
              >
              > Hi, I was reviewing the weblogic 6.0 docs in configuring in memory
              replication
              > in a cluster. It says to set persistentstoretype parameter to replicated
              in the
              > Web.xml. Can you show me an example of how this is set up in web.xml. In
              the 6.1
              > docs it says that this is configured in weblogic.xml and it shows an
              example of
              > the <session-descriptor> element. I'm not sure what tags should be
              surrounding
              > in web.xml though. Or can I just use weblogic.xml only for this
              configuration
              > in 6.0.
              > Thanks
              

  • How to enable multi-statement replication like select into in SAP Replication server

    Hi All,
    Currently I am worling on replication of non logged operation using SAP Replication Server.My source and target databases both are Sybase ASE 15.7. I created a normal stored procedure having non logged operation like :
    create procedure proc1
    as
    select * into tab2 from tab1
    I have created database replication definition using following command :
    create database replication definition def1
    with primary at dewdfgwp01694.src
    replicate DDL
    replicate functions
    replicate transactions
    replicate tables
    and created subscription as well
    After marking the procedure using sp_setrepproc proc1,'function', I started the repagent (sp_start_rep_agent src)
    But after marking the procedure I am unable to execute the procedure and having the error :
    SELECT INTO command not allowed within multi statement transactions
    Sybase error code=226
    Can anyone please guide me in this situation
    FYI : I have executed all three commands in primary database :
    sp_dboption src,'select into/bulkcopy/pllsort',true;
    sp_dboption src,'ddl in tran',true;
    sp_dboption src,'full logging for all',true

    I am getting the error in primary database(Sybase ASE console) as well as in repserver .
    This error is occurring after the marking of the procedure in the primary database for replicating.
    And after getting this error i am unable to replicate any other table or procedure(seems the DSI thread is going down in repserver)
    the error in repserver is given below :
    T. 2014/09/20 16:58:03. (27): Last command(s) to 'server_name.trg':
    T. 2014/09/20 16:58:03. (27): 'begin transaction  [0a] exec proc1  '
    E. 2014/09/20 16:58:03. ERROR #1028 DSI EXEC(103(1) 'server_name.trg) - dsiqmint.c(4710)
    Message from server: Message: 226, State 1, Severity 16 -- 'SELECT INTO command not allowed within multi-statement transaction.
    H. 2014/09/20 16:58:03. THREAD FATAL ERROR #5049 DSI EXEC(103(1) server_name.trg) - dsiqmint.c(4723)
    The DSI thread for database 'server_name.trg' is being shutdown. DSI received data server error #226 which is mapped to STOP_REPLICATION. See logged data server errors for more information. The data server error was caused by output command #0 mapped from input command #0 of the failed transaction.
    I. 2014/09/20 16:58:03. The DSI thread for database 'server_name.trg' is shutdown.
    I. 2014/09/20 18:07:48. Replication Agent for server_name.src connected in passthru mode.

  • Oracle callable statement problems in weblogic 5.1

     

    Hi Benzi,
    Using Oracle arrays directly will not work because most of
    oracle object are not serializable. Not to mention, it's not standard.
    So the onlyt way to create arrays is using strored procedures.
    There are also array accessor methods supporting some oracle array
    extensions, though they are not supported officially and I think they could
    be avaialble in the next version of weblogic.
    Regards,
    Slava Imeshev
    "Benzi Galili" <[email protected]> wrote in message
    news:[email protected]...
    >
    Hi Ravi,
    Did you ever find a solution? We are running into the same problem withWLS 6.x,
    and it seems like we can't get it to use Oracle's thin JDBC properly froma pool
    configuration.
    Thanx,
    Benzi
    "Ravi Sundar" <[email protected]> wrote:
    e are using the TxDataSource obtained from weblogic connection pool.
    Details are shown below:
    weblogic.jdbc.connectionPool.oraclePool=\
    url=jdbc:oracle:thin:@sirius:1521:sirora,\
    driver=oracle.jdbc.driver.OracleDriver,\
    loginDelaySecs=0,\
    initialCapacity=2,\
    maxCapacity=50,\
    capacityIncrement=5,\
    allowShrinking=true,\
    shrinkPeriodMins=10,\
    refreshMinutes=5,\
    testTable=dual,\
    props=user=mrt3c;password=mrt3c
    weblogic.allow.reserve.weblogic.jdbc.connectionPool.oraclePool=\
    everyone
    weblogic.allow.reset.weblogic.jdbc.connectionPool.oraclePool=\
    everyone
    weblogic.allow.shrink.weblogic.jdbc.connectionPool.oraclePool=\
    everyone
    weblogic.jdbc.TXDataSource.oracleDataSource=oraclePool
    Next we use the following to obtain a connection:
    private Connection getConnection() throws Exception{
    InitialContext lvObjCtx = new InitialContext();
    DataSource lvObjDs = (DataSource)lvObjCtx.lookup("oracleDataSource");
    return lvObjDs.getConnection();
    We need to pass an array as IN parameter to oracle stored
    procedure. We use the following code in a stateless session ejb:
    public Vector insertBranchDetails(int lvIntMapId, int lvIntBranchId,
    int
    lvIntHierarchyLevel, int lvIntRoleId, String[] lvStrArrBranchId, String[]
    lvStrArrBranchName, String[] lvStrArrBranchOrder, String[]
    lvStrArrStudentsWeight, String[] lvStrArrDescription, String[]
    lvStrArrTimeValue, String[] lvStrArrTimeUnits, String[]
    lvStrArrEditorsWeight, String[] lvStrArrExpertsWeight, String[]
    lvStrArrExpertsName, String lvStrUserId) throws RemoteException{
    OracleCallableStatement lvObjCs = null;
    Connection lvObjConn = null;
    try{
    lvObjConn = ConnectionPool.getConnection();
    lvObjCs = (OracleCallableStatement)lvObjConn.prepareCall("{call
    PROC_INS_UPD_BRANCHES_01(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
    ArrayDescriptor lvObjAs = new ArrayDescriptor("ARRAY_VARCHAR2_4000",
    lvObjConn);
    /* ARRAY_VARCHAR2_4000 is a SQLTABLE */
    ARRAY lvObjBranchId = new oracle.sql.ARRAY(lvObjAs, lvObjConn,
    lvStrArrBranchId);
    ARRAY lvObjBranchName = new oracle.sql.ARRAY(lvObjAs, lvObjConn,
    lvStrArrBranchName);
    ARRAY lvObjBranchOrder = new oracle.sql.ARRAY(lvObjAs, lvObjConn,
    lvStrArrBranchOrder);
    ARRAY lvObjStudentsWeight = new oracle.sql.ARRAY(lvObjAs, lvObjConn,
    lvStrArrStudentsWeight);
    ARRAY lvObjDescription = new oracle.sql.ARRAY(lvObjAs, lvObjConn,
    lvStrArrDescription);
    ARRAY lvObjTimeValue = new oracle.sql.ARRAY(lvObjAs, lvObjConn,
    lvStrArrTimeValue);
    ARRAY lvObjTimeUnits = new oracle.sql.ARRAY(lvObjAs, lvObjConn,
    lvStrArrTimeUnits);
    ARRAY lvObjEditorsWeight = new oracle.sql.ARRAY(lvObjAs, lvObjConn,
    lvStrArrEditorsWeight);
    ARRAY lvObjExpertsWeight = new oracle.sql.ARRAY(lvObjAs, lvObjConn,
    lvStrArrExpertsWeight);
    ARRAY lvObjExpertsName = new oracle.sql.ARRAY(lvObjAs, lvObjConn,
    lvStrArrExpertsName);
    lvObjCs.setInt(1, lvIntMapId);
    lvObjCs.setInt(2, lvIntBranchId);
    lvObjCs.setInt(3, lvIntHierarchyLevel);
    lvObjCs.setInt(4, lvIntRoleId);
    lvObjCs.setString(5, lvStrUserId);
    lvObjCs.setARRAY(6, lvObjBranchId);
    lvObjCs.setARRAY(7, lvObjBranchName);
    lvObjCs.setARRAY(8, lvObjBranchOrder);
    lvObjCs.setARRAY(9, lvObjStudentsWeight);
    lvObjCs.setARRAY(10, lvObjTimeValue);
    lvObjCs.setARRAY(11, lvObjTimeUnits);
    lvObjCs.setARRAY(12, lvObjDescription);
    lvObjCs.setARRAY(13, lvObjEditorsWeight);
    lvObjCs.setARRAY(14, lvObjExpertsWeight);
    lvObjCs.setARRAY(15, lvObjExpertsName);
    lvObjCs.registerOutParameter(16, Types.INTEGER);
    lvObjCs.registerOutParameter(17, Types.VARCHAR);
    lvObjCs.execute();
    int lvIntErrorNumber = lvObjCs.getInt(16);
    String lvStrErrorDescription = lvObjCs.getString(17);
    if((lvIntErrorNumber % 10) == 1){
    throw new AppServerException("Error Number: " + lvIntErrorNumber +
    Error Description: " + lvStrErrorDescription);
    Vector lvVecData = new Vector();
    lvVecData.addElement(new Integer(lvIntErrorNumber));
    lvVecData.addElement(lvStrErrorDescription);
    return lvVecData;
    }catch(Exception lvObjEx){
    throw new AppServerException(lvObjEx);
    }finally{
    try{
    if(lvObjCs != null){
    lvObjCs.close();
    if(lvObjConn != null){
    ConnectionPool.returnConnection(lvObjConn);
    }catch(Exception lvObjEx){
    When this method is called from the client we get the following error:
    java.lang.ClassCastException: weblogic.jdbc20.rmi.SerialCallableStatement
    This occurs when we try to cast the CallableStatement to
    OracleCallableStatement. Without casting to OracleCallableStatement
    we cannot pass arrays as IN parameters to oracle stored procedures.
    The method works well if we use the following code to obtain the
    connection:
    >>
    private Connection getConnection() throws Exception{
    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    DriverManager.getConnection("jdbc:oracle:thin:@sirius:1521:sirora",
    "mrt3c", "mrt3c");
    But the problem is, this connection does not support transactions
    Please help

  • Dealing with frequent disconnected states (replication) - advice needed

    Hello,
    We have a very complex environment and I was wondering if anyone out there in the SQL community had ever dealt with, or had ideas on how to deal with, this unique sort of environment.  We support two "homegrown" SQL Database applications over
    a geographically dispersed area.  The remote locations are currently connected via T1s.  But, it doesn't end there...  At the remote locations, there are vehicles that are often disconnected for, sometimes, months at a time, where folks on those
    vehicles are entering and accessing data from the applications.  We currently use SQL 2008 Merge replication, and, it works...  but, it, lately, has had some issues.  But, it DOES work... It just doesn't feel like the ideal solution.  The
    way we have it now, our main SQL DB is in our main datacenter... then, at each remote location, there is another SQL server that houses a copy of the database using SQL merge replication.  Then, on each vehicle, we have servers that have everything on
    them (they are domain controllers, SQL servers and web application servers) and, also on the vehicle is a laptop set up to access the application from that server over wireless.  When the server on the vehicle can see the domain and the DB server at the
    remote location, merge replication handles synching those two.
    Does anyone have a better solution to this?  I guess an example of our situation would be something like if NASA wanted to use our applications and they needed to be able to continue using the application even if they did not have internet or any, for
    that matter, connectivity.
    Thank you in advance for any advice/ideas.
    Charlie

    Merge replication was designed for this.
    The question is where are you stumbling. You said it works, but now have some unspecified problems. What is the nature of the problems you are seeing? Keep in mind that merge replication is designed to be resilient to failures. I have some clients where
    90% of their sync's fail, but the 10% that work replicate their data within the design parameters for the application.
    I did have a client with 4000 subscribers hanging off one publisher. It worked well, but they decided to use XML diffgrams for their change detection and data transfer and run Oracle end to end.  This change was driven by problems they were having with
    their data integration requirements.
    NASA would likely implement a custom solution using open source technologies, because that is their way of doing business (at least with the part of NASA I have worked with).
    looking for a book on SQL Server 2008 Administration?
    http://www.amazon.com/Microsoft-Server-2008-Management-Administration/dp/067233044X looking for a book on SQL Server 2008 Full-Text Search?
    http://www.amazon.com/Pro-Full-Text-Search-Server-2008/dp/1430215941

  • Sticky sessions and Load Balancing in WL Clusters

    We are using iPlanet Web Server 4.1 with WebLogic App Server; and would like
    to implement load balancing with sticky sessions and in-memory state
    replication.
    The documentation in Weblogic says that -
    When using in-memory state replication, your WebLogic Server Cluster must
    live behind one or more proxy servers. The proxy servers are smart enough to
    send servlet requests, belonging to the same HTTP session, back to the same
    server in the cluster that holds the session data.
    (Ref: http://www.weblogic.com/docs51/cluster/setup.html)
    Does this mean that the sticky session configuration has to be done on the
    iPlanet Web Server itself ?
    Also, if WebLogic is used as the Web server, does WebLogic provide any
    support for sticky sessions?
    Any help, suggestions or links to useful info are welcome.
    Regards,
    Milind.

    Mike,
    im curious as to why you would recomend using weblogic as a web server in 6.1?
    I would not for the following reasons:
    - it costs 10x more per cpu list
    - it doesnt support hardware accell cards (afaik, please let me know if this has
    changed)
    iplanet is really good a serving up static html and gif's, especially in ssl if you
    have a hardware accell card. So if you have a site with lots of graphics and you use
    ssl a lot, I think its still a better solution.
    -Joel
    Mike Reiche wrote:
    You get sticky round-robin by default.
    You need to have session tracking turned on (i think it is on by default). You
    need to have the WL plugin configured in iPlanet.
    When WL creates an httpSession, it writes a cookie (or rewrites the URL) back
    to the browser. On subsequent requests, the browser sends the cookie and iPlanet
    plug-in directs the request to the correct WL instance based on the ip address
    of the WL server embedded in the cookie.
    If you are using WLS 6.1, I would recommend using it as a web server (and not
    using iPlanet). I imagine that it supports stickly load balancing as well.
    Mike
    Joel Nylund <[email protected]> wrote:
    you get round robin by default, if you want a different scheme you can
    use one
    of the other 3 options (weight, random or parameter).
    -Joel
    I think weight can be set in weblogic properties. I havent used any other
    than
    round robin.
    Milind Prabhu wrote:
    We are using iPlanet Web Server 4.1 with WebLogic App Server; and wouldlike
    to implement load balancing with sticky sessions and in-memory state
    replication.
    The documentation in Weblogic says that -
    When using in-memory state replication, your WebLogic Server Clustermust
    live behind one or more proxy servers. The proxy servers are smartenough to
    send servlet requests, belonging to the same HTTP session, back tothe same
    server in the cluster that holds the session data.
    (Ref: http://www.weblogic.com/docs51/cluster/setup.html)
    Does this mean that the sticky session configuration has to be doneon the
    iPlanet Web Server itself ?
    Also, if WebLogic is used as the Web server, does WebLogic provideany
    support for sticky sessions?
    Any help, suggestions or links to useful info are welcome.
    Regards,
    Milind.

  • Running multiple proxy servers

     

              Hi,
              I am aware that I cannot use a product like Central Dispatch to balance load
              between multiple WLS instances. I understand that I should use WLS as a
              proxy in front of a cluster of WLS instances.
              If I deploy mulitple WLS proxies to refer to a singel cluster of WLS, could I use
              the Global Dispatch product from Resonate to 1) ensure that load is balanced
              appropriately across the different proxies and 2) forward requests to a "holding"
              pen if
              the cluster is overloaded.
              If I use Round-robin DNS in front of the 2 proxies, then some users would
              need to explicitly point to one, or the other proxy. Is this correct?
              If I use Round-robin DNS in front of the 2 proxies, then I cannot control the
              number of users which end up on each of the 2 proxies. Is this correct?
              Thanks,
              Rob
              Prasad Peddada wrote:
              > As long as the proxy servers are configured the same way it is possible.
              >
              > Regards
              > Prasad
              >
              > Matias Pelenur wrote:
              >
              > > Hi,
              > > In the weblogic documentation it says that "When using in-memory state
              > > replication, your WebLogic Cluster must live behind one -->or more<-- proxy
              > > servers." What needs to be done in weblogic.properties, etc, if we want to
              > > have two proxy servers instead of just one? The scenario I'm thinking of is
              > > two proxy servers, with DNS round-robin so that incoming requests will come
              > > to either of the proxy servers, and then both proxy servers redirecting
              > > requests to a series of weblogic servers running on a cluster. So both proxy
              > > servers would need to know where to redirect a particular request, even if
              > > the other proxy server handled the request first.... Is this possible?
              > >
              > > I hope this is clear enough.
              > >
              > > Thanks,
              > > Matias
              

  • Errors using weblogic sql driver: "No JDBC connection can be made because the transaction state is marked rollback"

    One of our customers starts to encounter this error message recently.
    We checked our log files. It seems that the error happens when
    to obtain a jdbc connection. Have anyone seen similar problems
    and knows how to fix it? thanks in advance.
    We are using weblogic server 6.1sp2, and weblogic sql type 4 driver.
    The functions that invoke the jdbc calls are stateless session bean
    methods with their transaction attributes marked as Required.
    There is no nested calls of these methods.
    A partial stack trace we obtained is as following:
    java.sql.SQLException: No JDBC connection can be made
    because the transaction state is
    Marked Rollback
         at weblogic.jdbc.jts.Connection.getOrCreateConnection(Connection.java:586)
         at weblogic.jdbc.jts.Connection.prepareStatement(Connection.java:115)
         at weblogic.jdbc.rmi.internal.ConnectionImpl.prepareStatement(ConnectionImpl.java:135)
         at weblogic.jdbc.rmi.SerialConnection.prepareStatement(SerialConnection.java:76)
    lixin

    Joseph Weinstein <[email protected]> wrote:
    >
    >
    YuanHui Liu wrote:
    Joe,
    We got the exact same error message. The error came after we got theJDBC connection,
    and trying to create statement off it.
    It occurs intermitently when we are running another standalone JAVAapp to do
    some end of day work, which results in the DB Server being very busy(90+%CPU
    usage) for about 5 minutes. We see a surge of requests to the WLSJDBC Connection
    pool. This would sometimes result in all our subsequent DB requeststo fail and
    lead to a crash.
    We are using WLS6.0SP1. I do not think there's a 30 seconds wait leadingto a
    connection timeout that caused this(rather it is the end effect).
    Can you give us a more detailed explanation? Is there a miscommunicationbetween
    our DB(Sybase12) and WLS?Hi. It looks to you like it's after you get the connection, but really
    it's when the server is
    gettng the pool connection. For performance/synchronization reasons we
    do a clever
    delay: When your code asks for a pool connection we quickly give you
    the pool wrapper,
    but we delay actually reserving the real underlying DBMS connection until
    your first
    real need for a connection, at your first JDBC call, such as createStatement()
    etc.
    It is while waiting for a pool connection long enough for the transaction
    coordinator
    to have timed you out before you ever get a chance. It's nothing to do
    with the
    DBMS or even JDBC, I believe. I think the weblogic server either has
    too few execute-threads
    and/or too few CPU cycles to do the work load.
    Okay, so there's a lazy initialization of the connection.
    From reading our log I believe our failur is immediate rather
    than waiting for 30+ seconds(the default setting) from the DB,
    the timeout occurred later as a result. At the time either because the DB Server
    is very busy.
    Since we are running WLS6.0 we have only one connection pool,
    we have defined a max of 150 threads in the pool. While this
    is happening the DB Server is being pinned by an overnight job,
    but the WLS Server is not busy at all. The DB and WLS resides
    on different physical boxes.
    We also have a thread dump from the WLS console when we rebooted the server, it
    showed that we are hanging on to the thread & jdbc
    connections after these exceptions has occurred instead of releasing them, note
    "16083"(~4.5 hours) seconds has passed:
    142 116222 Retry rollback request for tx: 'transaction=(IdHash=2963855,Name =
    [EJB UserManagerBeanImpl.signalICUserServletHeartBeat()],Xid=30643:8f3838f3709bf53d,Status=Rolling
    Back. [Reason = Unknown],numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since
    begin=16083,seconds left=10,ServerResourceInfo[weblogic.jdbc.jts.Connection]=(state=started,assigned=server),SCInfo[server]=(state=active),properties=({weblogic.jdbc=t3://159.55.158.25:8005,
    weblogic.transaction.name=[EJB UserManagerBeanImpl.signalICUserServletHeartBeat()]}))'
    Scheduled Trigger
    So I would argue this problem actually chewed up resources on the WLS server.
    -Yuanhui Liu
    >>
    >>
    Thanks.
    -YuanHui Liu
    Joseph Weinstein <[email protected]> wrote:
    lixin wrote:
    One of our customers starts to encounter this error message recently.
    We checked our log files. It seems that the error happens when
    to obtain a jdbc connection. Have anyone seen similar problems
    and knows how to fix it? thanks in advance.
    We are using weblogic server 6.1sp2, and weblogic sql type 4 driver.
    The functions that invoke the jdbc calls are stateless session bean
    methods with their transaction attributes marked as Required.
    There is no nested calls of these methods.
    A partial stack trace we obtained is as following:
    java.sql.SQLException: No JDBC connection can be made
    because the transaction state is
    Marked Rollback
    at weblogic.jdbc.jts.Connection.getOrCreateConnection(Connection.java:586)Hi. This sounds like a JVM thread starvation issue, and/or a server
    load
    issue. What is
    happening is that the transaction is started, and times out beforethe
    SSB even gets to
    the first JDBC work. I would first verify that the customer is using
    the very latest JVM
    available for the machine.
    Joe Weinstein
    at weblogic.jdbc.jts.Connection.prepareStatement(Connection.java:115)
    at weblogic.jdbc.rmi.internal.ConnectionImpl.prepareStatement(ConnectionImpl.java:135)
    at weblogic.jdbc.rmi.SerialConnection.prepareStatement(SerialConnection.java:76)
    lixin

Maybe you are looking for

  • Receiving an export file error: wrong type

    I have created a movie several times in FCP and then exported the movie to QT without any problems. Now all of a sudden, I can't get the movie to export correctly. After the 2 hour export, I'll check on FCP to find that the program has shut down with

  • Zen Style M300 frozen when Kingstn or Sandisk 16 Gb microSDHC is plugged

    Last week I bought a Zen Style M300 through online store in Australia. The main reason for buying this player was because it is said to spport microSDHC card up to32 Gb. I wanted to keep my music files separate. I applied the new firmware straight aw

  • What is that slot for?

    OK at the risk of sounding like a real noob, I'm just gona go ahead & ask... What is that 3rd big slot on the right side of the MBA for? You have the mini-DVI, followed by a USB slot & then there is this unmarked "kinda like for SD" slot. TIA

  • Passing a pl/sql "array" to JDBC

    I have a PL/SQL table (index by binary_integer) and I want to pass the values through an OUT parameter to a external java application. But while we have tried declaring my table as a index by table, as a nested table and a varray, the Java gets the e

  • How to configure payment term

    Hi Gurus, Need to configure new payment term as described below if a supplier ships on 10 May, that payment will only be due on 10 July. But also if they ship on 29 May, the payment will also still be 10 July. This is my first time so plz guide how t