Do client connections need to be sticky to Plug-in web server instance?

Hi,
I'm trying to understand requirements for load-balancing client requests to a
group of web servers on which we will have the NSAPI plug-in installed under iPlanet.
We will have in-memory replication configured in a cluster of weblogic 5.1 servers
behind the web servers.
Do we need to ensure HTTP stickiness from browser to the web servers or can client
requests be sent to any web server containing the plug-in during a session?
Thanks in advance,
Julian

They can be sent to any of the webservers as long as the webservers are
configured the same. They should be set to proxy to the same weblogic
instances.
Regards,
Eric
"Julian Herzel" <[email protected]> wrote in message
news:3e62a1b1$[email protected]..
>
Hi,
I'm trying to understand requirements for load-balancing client requeststo a
group of web servers on which we will have the NSAPI plug-in installedunder iPlanet.
We will have in-memory replication configured in a cluster of weblogic 5.1servers
behind the web servers.
Do we need to ensure HTTP stickiness from browser to the web servers orcan client
requests be sent to any web server containing the plug-in during asession?
>
Thanks in advance,
Julian

Similar Messages

  • Need to configure email alerts for app/web server shutdown

    Hi,
    I need to configure email alert notification, so that whenever application server or webserver is shutdown/restarted, an email is sent to the group/userid.
    I am aware that in Peoplesoft, there is no parameter or functionality which sends an email notification whenever application server & web server restart & shutdown. This is where I need help.
    Did anyone setup the email alert notification in any of your environments? If so, please let me know how did you do the setup?
    Thanks,
    Sakky

    Please find the below sample batch program.
    this helps to start the appserver automatically and if the status fails this will send email automatically.
    This is the another way of findting the status of the app server.
    In the below program, by finding the "Done" value on the output screen we can decide if the server is running or not.
    Hope you understand this, Kindly let me know if you need further information.
    ===============================
    @echo off
    REM Set a temporary variable
    SET CONNECT
    REM Check the status of the Application server
    psadmin -c sstatus -d PSEPM | FIND "Done" > NUL
    REM If the server is down boot the server
    ERRORLEVEL 1 SET CONNECT= psadmin -c boot -d PSEPM
    %CONNECT%
    REM Check the server again for status
    psadmin -c sstatus -d PSEPM | FIND "Done" > NUL
    IF ERRORLEVEL 1 goto sendmail
    goto end
    REM Sending mail to Administrator
    :sendmail
    REM setting the path for email command
    SET CONNECT= cd D:\PT849\bin\client\winx86
    %CONNECT%
    REM Below command will send mail to the Administrator
    SET CONNECT= psemail -server < server ip> -from [email protected] -to [email protected] -subject "Server Down" -body "Hi, Server is down at this time, unable to boot."
    %CONNECT%
    :end
    ==============================
    Edited by: Soundappan on Feb 19, 2011 10:39 AM
    Edited by: Soundappan on Feb 19, 2011 10:40 AM

  • Problem in connecting to LDAP DS with iPlanet 4.1 Web server

    We have a web application deployed in iPlanet4.0 web server, we are using Sun One directory server for authentication.( Thru JNDI - Package javax.naming.ldap)
    The Problem :
    The problem is that, I am able to do the LDAP related operations anly a few times, after which the below stated exception results. Following this exception, I cannot connect to the directory server again, unless I restart the webserver. For all my operations I establish a fresh context.
    The Exception :
    java.lang.IllegalMonitorStateException: current thread not owner Exception

    Is tghe user id and password that it is requesting for OID? If so then you have several options. You can supply a user DN and password for a know user. For instance, if you have a user DN of cn=jdoe,ou=slaes,o=acme this would be the user is or DN that you need. This DN would have a password attribute associated with it and that would be the password.
    Second, OID has a super user DN called cn=orcladmin. The default password for this su is manager.
    Hope this helps.
    Jay
    null

  • Need help with URL Redirect in Sun Web Server 7 u5

    All I am trying to do is redirect to a static URL and for the life of me I can not get it to behave the way I would expect. I am new to Sun Web Server so I am just trying to use the Admin Console to set this up.
    Here is what I'm trying to do:
    Redirect from - http://www.oldsite.com/store/store.html?store_id=2154
    To - http://www.newsite.com/Stores/StoreFront.aspx?StoreId=2154
    Here's what I tried in the console.
    Added a new URL Redirect
    Set the Source to be Condition and set it to: '^/store_id=2154$' (quotes included)
    Then set the Target to: http://www.newsite.com/Stores/StoreFront.aspx?StoreId=2154
    Then for the URL Type I checked Fixed URL
    When I tested with: http://www.oldsite.com/store/store.html?store_id=2154 it did redirect as desired
    BUT
    When I tested with: "http://www.oldsite.com/store/store.html?store_id=5555" it too got redirected to the Target and I can't figure out how this second URL can satisfy the condition to get redirected.
    Any help is most appreciated.

    thanks for choosing sun web server 7
    it is simpler if you just edit the configuration files manually
    cd <ws7-install-root>/https-<hostname>/config/
    edit obj.conf or <hostname>-obj.conf (if there is one for you depending on your configuration so that it look something like)
    <Object name="default">
    AuthTrans..
    #add the folllowing line here
    <If defined $query>
    <If $urlhost =~ "/oldsite.com" and
    $uri =~ "/store/store.html" and
    $query =~ "store_id=2154" >
    NameTrans fn="redirect" from="/" http://www.newsite.com/Stores/StoreFront.aspx?StoreId=2154
    </If>
    </If>
    ..rest of the existing obj.conf. continues
    NameTrans...
    now, you can either do <ws7-install-root>/https-<hostname>/bin/reconfig -> to reload your configuration without any server downtime or <ws7-install-root>/https-<hostname>/bin/restart -> to restart the server
    if it did work out for your, you will need to run the following so that admin server is aware of what you just did
    <ws7-install-root>/bin/wadm pull-config user=admin config=<hostname> <hostname.domainname>
    hope this helps

  • How to connect my appication to the internet without using web server?

    I'm doing my final project. It is an client/server application and using gprs as the carrier. But i have a problem in connecting the application to the internet!How to set its application IP?Do u have the example code?

    hi
    no you dont require to set any IP address
    but make sure that you have proper GPRS connection, once you have that it will automatically set the IP address!!
    if you are in india then there is two kind of GPRS service avail one is normal GPRS and other is Advance GPRS
    in this case you have to have Advacne GPRS!!
    [email protected]

  • Connection with Database via Middleware  Application on a Web Server

    Hello friends
             I dont have much knowledge of Authorware. I want to read some values from my JSP Applicaiton using Authorware and need to display those values in Authorware file. If any one know please inform me. its urgent!..
    Thanks and Regards
    Dagadu Akambe
    Pune, india

    I dont have much knowledge of Authorware. I want to read some values from my JSP Applicaiton using Authorware and need to display those values in Authorware file. If any one know please inform me. its urgent!..
    Look at ReadURL and PostURL. These work similar to HTML form Get and Post.
    Steve

  • What client libraries need to connect to Oracle8i on Sun Server?

    Hi there,
    I have a problem when I try connect from Oracle client 7.3.4 on a Sun machine to Oracle8i on a different Sun machine. I don't know what client libraries need to install on Oracle 7.3.4 to be able connecting to Oracle8i server?. In the past, I had to run gencltsh script to update oracle lib to connect to Oracle7.3.4 server; however, I am stucked on this Oracle8i server. If anyone have any idea to help me to solve this problem please send email to [email protected] Thanks and nice day.

    Hi there,
    I have a problem when I try connect from Oracle client 7.3.4 on a Sun machine to Oracle8i on a different Sun machine. I don't know what client libraries need to install on Oracle 7.3.4 to be able connecting to Oracle8i server?. In the past, I had to run gencltsh script to update oracle lib to connect to Oracle7.3.4 server; however, I am stucked on this Oracle8i server. If anyone have any idea to help me to solve this problem please send email to [email protected]. Thanks and nice day.

  • Remote access VPN clients connected to Internet from VPN

    Greetings,
    I need to let remote VPN clients to connect to Internet from the same ASA VPN server
    " client connects to ASA through VPN tunnel from outside interface then access Internet from the same ASA from outside interface again
    thanks

    you'll need to configure 'same-security-traffic permit intra-interface' on the ASA .
    Also, need to setup the corresponding nat statements for your clients pool range.
    i.e.
    global (outside) 1 interface
    nat (outside) 1 access-list anyconnectacl
    where anyconnectacl is the pool for your clients:
    access-list anyconnectacl permit ip 172.16.1.0 255.255.255.0 any

  • How to make the client connect to the server at the command prompt?

    I found this code on IBM's website, it was a training session on servers and clients using java.
    The code compiles fine and the server seems to start up properly when I use java Server 5000. I think whats happening is the server is running and listening for a connection on port 5000.
    When I try to run the client I get the following error.
    Exception in thread "main" java.lang.NoSuchMethodError: main
    I see a start() method but no main. As far as I know, applications should all have main, it seems as if the person who wrote this kinda confused applets with application. Not that I would really know what happened.
    If you have time, could you tell me if there's an easy fix for this? I would love to have this client/server working if it isn't too much trouble. As I have looked all over the net for a free client/server applet that will actually let me see the java code and none of the free ones do allow getting to their source.
    Most of them allow you to customize them somewhat but also have built in advertising that can't be removed.
    This is the closest I have come to finding one that lets me look under the hood. But alas it doesn't work out of the box and I don't know what to do to fix it.
    Heres the code: Server:
    import java.io.*;
    import java.net.*;
    import java.util.*;
    public class Server
      // The ServerSocket we'll use for accepting new connections
      private ServerSocket ss;
      // A mapping from sockets to DataOutputStreams.  This will
      // help us avoid having to create a DataOutputStream each time
      // we want to write to a stream.
      private Hashtable outputStreams = new Hashtable();
      // Constructor and while-accept loop all in one.
      public Server( int port ) throws IOException {
        // All we have to do is listen
        listen( port );
      private void listen( int port ) throws IOException {
        // Create the ServerSocket
        ss = new ServerSocket( port );
        // Tell the world we're ready to go
        System.out.println( "Listening on "+ss );
        // Keep accepting connections forever
        while (true) {
          // Grab the next incoming connection
          Socket s = ss.accept();
          // Tell the world we've got it
          System.out.println( "Connection from "+s );
          // Create a DataOutputStream for writing data to the
          // other side
          DataOutputStream dout = new DataOutputStream( s.getOutputStream() );
          // Save this stream so we don't need to make it again
          outputStreams.put( s, dout );
          // Create a new thread for this connection, and then forget
          // about it
          new ServerThread( this, s );
      // Get an enumeration of all the OutputStreams, one for each client
      // connected to us
      Enumeration getOutputStreams() {
        return outputStreams.elements();
      // Send a message to all clients (utility routine)
      void sendToAll( String message ) {
        // We synchronize on this because another thread might be
        // calling removeConnection() and this would screw us up
        // as we tried to walk through the list
        synchronized( outputStreams ) {
          // For each client ...
          for (Enumeration e = getOutputStreams(); e.hasMoreElements(); ) {
            // ... get the output stream ...
            DataOutputStream dout = (DataOutputStream)e.nextElement();
            // ... and send the message
            try {
              dout.writeUTF( message );
            } catch( IOException ie ) { System.out.println( ie ); }
      // Remove a socket, and it's corresponding output stream, from our
      // list.  This is usually called by a connection thread that has
      // discovered that the connectin to the client is dead.
      void removeConnection( Socket s ) {
        // Synchronize so we don't mess up sendToAll() while it walks
        // down the list of all output streamsa
        synchronized( outputStreams ) {
          // Tell the world
          System.out.println( "Removing connection to "+s );
          // Remove it from our hashtable/list
          outputStreams.remove( s );
          // Make sure it's closed
          try {
            s.close();
          } catch( IOException ie ) {
            System.out.println( "Error closing "+s );
            ie.printStackTrace();
      // Main routine
      // Usage: java Server <port>
      static public void main( String args[] ) throws Exception {
        // Get the port # from the command line
        int port = Integer.parseInt( args[0] );
        // Create a Server object, which will automatically begin
        // accepting connections.
        new Server( port );
    }CLIENT:
    import java.io.*;
    import java.net.*;
    public class ServerThread extends Thread
      // The Server that spawned us
      private Server server;
      // The Socket connected to our client
      private Socket socket;
      // Constructor.
      public ServerThread( Server server, Socket socket ) {
        // Save the parameters
        this.server = server;
        this.socket = socket;
        // Start up the thread
        start();
      // This runs in a separate thread when start() is called in the
      // constructor.
      public void run() {
        try {
          // Create a DataInputStream for communication; the client
          // is using a DataOutputStream to write to us
          DataInputStream din = new DataInputStream( socket.getInputStream() );
          // Over and over, forever ...
          while (true) {
            // ... read the next message ...
            String message = din.readUTF();
            // ... tell the world ...
            System.out.println( "Sending "+message );
            // ... and have the server send it to all clients
            server.sendToAll( message );
        } catch( EOFException ie ) {
          // This doesn't need an error message
        } catch( IOException ie ) {
          // This does; tell the world!
          ie.printStackTrace();
        } finally {
          // The connection is closed for one reason or another,
          // so have the server dealing with it
          server.removeConnection( socket );
    }Thanks for your time.

    CLIENT:
    import java.applet.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
    import java.net.*;
    public class Client extends Panel implements Runnable
      // Components for the visual display of the chat windows
      private TextField tf = new TextField();
      private TextArea ta = new TextArea();
      // The socket connecting us to the server
      private Socket socket;
      // The streams we communicate to the server; these come
      // from the socket
      private DataOutputStream dout;
      private DataInputStream din;
      // Constructor
      public Client( String host, int port ) {
        // Set up the screen
        setLayout( new BorderLayout() );
        add( "North", tf );
        add( "Center", ta );
        // We want to receive messages when someone types a line
        // and hits return, using an anonymous class as
        // a callback
        tf.addActionListener( new ActionListener() {
          public void actionPerformed( ActionEvent e ) {
            processMessage( e.getActionCommand() );
        // Connect to the server
        try {
          // Initiate the connection
          socket = new Socket( host, port );
          // We got a connection!  Tell the world
          System.out.println( "connected to "+socket );
          // Let's grab the streams and create DataInput/Output streams
          // from them
          din = new DataInputStream( socket.getInputStream() );
          dout = new DataOutputStream( socket.getOutputStream() );
          // Start a background thread for receiving messages
          new Thread( this ).start();
        } catch( IOException ie ) { System.out.println( ie ); }
      // Gets called when the user types something
      private void processMessage( String message ) {
        try {
          // Send it to the server
          dout.writeUTF( message );
          // Clear out text input field
          tf.setText( "" );
        } catch( IOException ie ) { System.out.println( ie ); }
      // Background thread runs this: show messages from other window
      public void run() {
        try {
          // Receive messages one-by-one, forever
          while (true) {
            // Get the next message
            String message = din.readUTF();
            // Print it to our text window
            ta.append( message+"\n" );
        } catch( IOException ie ) { System.out.println( ie ); }
    import java.applet.*;
    import java.awt.*;
    import java.io.*;
    import java.net.*;
    public class ClientApplet extends Applet
      public void init() {
        String host = getParameter( "192.168.1.47" );
        int port = Integer.parseInt( getParameter( "5000" ) );
        setLayout( new BorderLayout() );
        add( "Center", new Client( host, port ) );
    }Sorry about that. Now when I run an html file with this applet I just get the x in the corner.
    Thanks for looking.

  • OATS: Error Creating datasource client connection

    Hi All
    When i try to add montiors in the OATS controller machine i am getting the following error .
    Error while creating datasource client connection.
    i am trying to monitor a linux machine. I am able to ping that machine from controller.
    when i tried to do
    plink.exe username@hostname i am getting the following error ...
    FATAL error : Network error : Connection timed out..
    Can anyone please help me on this??
    Thanks

    I'm not sure if this is the same problem but the following thread may help (mentioning the ports that may need opening on your firewalls)...
    Re: What are the various ports used by OLT?
    oracle.port.rmi=4444
    oracle.port.http=8088
    oracle.port.empstart=9001
    oracle.port.uil2=7071
    oracle.port.dataCollector=7073
    oracle.port.webservice=8083
    oracle.port.jndi.rmi=1098
    oracle.port.jndi=1099
    oracle.port.https=8433
    * 9001 (Agent Comunication Port)
    * 1099 (Datacollector Comunication Port)
    * 8088 (for running OpenScript scripts)

  • ORA-12518: TNS:listener could not hand off client connection

    guys,
    i have a problem here with the connection between a client host and a server database, using a new non-default listener LISTENER_BKP_1. The error showed is:
    ORA-12518: TNS:listener could not hand off client connection
    i had learned about this error here before, and i toke some notes as follows:
    h2. listener.log
    TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production on 25-SEP-2009 01:23:49
    Copyright (c) 1991, 2005, Oracle. All rights reserved.
    System parameter file is C:\oracle\product\10.2.0\db_2\network\admin\listener.ora
    Log messages written to C:\oracle\product\10.2.0\db_2\network\log\listener_bkp_1.log
    Trace information written to C:\oracle\product\10.2.0\db_2\network\trace\listener_bkp_1.trc
    Trace level is currently 0
    Started with pid=2212
    Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=WINXP)(PORT=1523)))
    Listener completed notification to CRS on start
    TIMESTAMP * CONNECT DATA [* PROTOCOL INFO] * EVENT [* SID] * RETURN CODE
    25-SEP-2009 01:24:39 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER=PAULO))(COMMAND=services)(ARGUMENTS=64)(SERVICE=listener_bkp_1)(VERSION=169869568)) * services * 0
    25-SEP-2009 01:24:49 * (CONNECT_DATA=(SERVICE_NAME=financeira.winxp)(CID=(PROGRAM=C:\ORACLE?instantclient_10_2\sqlplus.exe)(HOST=PAULO_NOTEBOOK)(USER=ORACLE_DBA))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.100)(PORT=51649)) * establish * financeira.winxp * 12518
    TNS-12518: TNS:listener could not hand off client connection
    TNS-12560: TNS:protocol adapter error
    TNS-00530: Protocol adapter error
    32-bit Windows Error: 2: No such file or directory
    25-SEP-2009 01:24:53 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER=PAULO))(COMMAND=services)(ARGUMENTS=64)(SERVICE=listener_bkp_1)(VERSION=169869568)) * services * 0
    h2. lsnrctl services
    C:\>lsnrctl services listener_bkp_1
    LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 25-SEP-2009 01:33:40
    Copyright (c) 1991, 2005, Oracle. All rights reserved.
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=WINXP)(PORT=1523)))
    Services Summary...
    Service "FINANCEIRA.WINXP" has 1 instance(s).
    Instance "FINANCEI", status UNKNOWN, has 1 handler(s) for this service...
    Handler(s):
    "DEDICATED" established:0 refused:1
    LOCAL SERVER
    The command completed successfully
    h2. listener.ora file
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (GLOBAL_DBNAME = FINANCEIRA.WINXP)
    (SID_NAME = FINANCEI)
    LISTENER =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = WINXP)(PORT = 1521))
    SID_LIST_LISTENER_BKP_1 =
    (SID_LIST =
    (SID_DESC =
    (GLOBAL_DBNAME = FINANCEIRA.WINXP)
    (SID_NAME = FINANCEI)
    LISTENER_BKP_1 =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = WINXP)(PORT = 1523))
    h2. v$resource_limit
    RESOURCE_NAME ; CURRENT_UTILIZATION ; MAX_UTILIZATION ; INITIAL_ALLOCATION ; LIMIT_VALUE
    processes ; 26 ; 30 ; 150; 150
    sessions ; 30 ; 35 ; 170 ; 170
    2 rows selected
    this means that it didn't reach the resource limites yet. What i can do to solve the problem ???
    another important information is that connecting by the default listener LISTENER instead of the LISTENER_BKP_1 listener, the connection is completed successfully. There's enough SGA memory space too.
    Tks,

    Paulo_BR wrote:
    i have a problem here with the connection between a client host and a server database, using a new non-default listener LISTENER_BKP_1. The error showed is:
    ORA-12518: TNS:listener could not hand off client connectionDon't do Oracle on Windows, so I'm not sure how the following relates to the Listener dealing with a dedicated server connection request on Linux/Unix.
    On Linux/Unix, a dedicated server request means just that - a dedicated process has to be started to service that client. The Listener does it by using the parameters of the configured listener.ora service to execute +$ORACLE_HOME/bin/oracle+. This process then starts up, and the Listener hands off the client connection for this process for servicing.
    If there is a failure somewhere on this series of steps fail, the Listener throws the ORA-12518 exception. For example, the +$ORACLE_HOME+ has been incorrectly configured in listener.ora and it fails to execute and startup a dedicated server process.
    And this relates to the underlying error you are seeing:
    TNS-12518: TNS:listener could not hand off client connection
    TNS-12560: TNS:protocol adapter error
    TNS-00530: Protocol adapter error
    32-bit Windows Error: 2: No such file or directoryI think that the Listener on Windows uses the CreateRemoteThread() Win32 call to start up the server process thread. However, it needs a valid process identifier (of the existing Oracle instance) for this call - and thus needs to first identify the Oracle instance process. Could be that this step uses a ORACLE_HOME reference. And if that directory path is not valid, it is unable to identify the process id of the Oracle instance and thus unable to spawn a dedicated thread to service that client.

  • TNS:listener could not hand off client connection

    while trying to select from dblink I got ORA-12518: TNS:listener could not hand off client connection
    What should I do?
    here is the listener.ora
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = C:\oracle\product\10.2.0\db_2)
    (PROGRAM = extproc)
    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    (ADDRESS = (PROTOCOL = TCP)(HOST = disater)(PORT = 1521))
    )

    What is the operating system and database version for remote and local machines.
    Are you using dedicated or threaded server on the remoted DB. More information is needed.
    output from error message search:-
    12518, 00000, "TNS:listener could not hand off client connection"
    // *Cause: The process of handing off a client connection to another process
    // failed.
    // *Action: Turn on listener tracing and re-execute the operation. Verify
    // that the listener and database instance are properly configured for
    // direct handoff. If problem persists, call Oracle Support.
    // *Comment: The problem can be worked around by configuring dispatcher(s)
    // to specifically handle the desired presentation(s), and connecting
    // directly to the dispatcher, bypassing the listener.

  • How does client connect to RAC

    I'm confused how client connect to RAC,
    1) According to this:
    http://www.datadirect.com/developer/odbc/odbc_oracle_rac/connecting/index.ssp
    "a ServiceName exists for the entire Oracle RAC system. When an application uses the Oracle RAC system's ServiceName, the Oracle RAC system appears to be a single Oracle instance to the application"
    so, seems client just make sure using service name instead of SID, it will be connect to RAC. the URL format is same as single non-RAC enviroment
    2) however,according to this:
    http://forums.sun.com/thread.jspa?threadID=5274308
    The URL need to be:
    jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=on)
    (ADDRESS=(PROTOCOL=TCP)(HOST=host1) (PORT=1521))
    (ADDRESS=(PROTOCOL=TCP)(HOST=host2) (PORT=1521))
    (CONNECT_DATA=(SERVICE_NAME=service)))
    this make RAC connect URL differenct from single non-RAC enviroment
    if so, with this format, how does SQL developer connection set up? since you can only specify one host in connection properties configuration?
    if so, adding a node will require all of client modify connect url?
    3) my understanding is client only need to specify VIP to any one of node, and speicify global service name (all node should share same service name), this will make RAC connection setup (similar to above (1)), but I'm not sure if my understanding correct or not in the following senario:
    -- a) what if client using public ip (not VIP) to one of node, but using global service name?
    -- b) what if client using VIP to one of node, but using it's SID instead of global service name?
    -- c) what if client using public ip (not VIP) to one of node, and using it's SID?
    please clarify how does client connect to RAC?
    Thank you!

    Very good question.
    You have asked in a certain way which tells me you have done lot of research.
    Any how:-
    Remember no matter how convoluting it looks it is the same.
    1 Tns Entry
    If you add a node then yes you have to publish it.
    There are other alternatives such as Oracle Names [old]
    internect directory , ldap and so on, beyond the scope of this discussion.
    1)
    TNSNAME Entry
    RAC.WORLD=
    DESCRIPTION=DESCRIPTION=(LOAD_BALANCE=on)
    (ADDRESS=(PROTOCOL=TCP)(HOST=host1) (PORT=1521))
    (ADDRESS=(PROTOCOL=TCP)(HOST=host2) (PORT=1521))
    (CONNECT_DATA=(SERVICE_NAME=service))
    Now see The same string from DESCRIPTION onwards goes to jdb thin client, it
    is the same thing...
    Also the host1 host2 are all VIPS'
    Also you need failover , load balance thingies in there
    -- a) what if client using public ip (not VIP) to one of node, but using global service name?
    non vip, Test it out, tns should hop over it .
    but TAF /FAN won't work.
    -- b) what if client using VIP to one of node, but using it's SID instead of global service name?
    You have to use SERVICENAME, if you are using SID then you are pretty
    much connecting to 1 node.
    -- c) what if client using public ip (not VIP) to one of node, and using it's SID?
    Then you are using 1 node rac.

  • Am i on the right track for establishing my client connection with BC4J?

    I am developing web-application with BC4J JSP project now. However, I find the auto-generated page not that useful as they are not flexible enough. Then, I decided to write coding by myself. But the first problem is - how to write the coding for client connection? To make maintenance easy, I would like to place those connection code in a class file instead of hard-coding each connection details in my JSP or Servlet page.
    Question 1: Through the examples I search in my JDeveloper (Candidate 2) directory, found a file TestClient.java in the \BC4J\samples\Caching\src\demo directory with the following codes:
    // Create an instance of the application module by name, using local mode
    String _am  = "demo.DemoModule"; // Fully-qualified application module name
    String _cf  = "DemoModuleLocal"; // Configuration name for connection info
    ApplicationModule am = Configuration.createRootApplicationModule(_am,_cf);
    // Find the Managers view object by name in the application module
    ViewObject mgrVO = am.findViewObject("Managers");
    // We're done with the AM instance, so release it
    Configuration.releaseRootApplicationModule(am,true);
    Is it for testing only or really useful for the production environment? Am I doing the right thing if i use such method to establish my web client connection? What's the pros and cons for using this method? Any other better alternatives?
    Question 2: As I know BC4J automatically takes care of connection pooling as a default manner since version 3.2. Can I still use the following statement
    session.setAttribute("user_name", user_name); //Set session attribute
    String user_name = (String) session.getAttribute(user_name); // Get session attribute
    to capture and assign client session correctly for individual clients?
    Question 3: What codes should I use to achieve 'Transaction' update, which assembles the coding as follows:
    Connection.setAutoCommit(false); //disable auto commit
    connection.commit();
    connection.rollback();
    connection.close();
    Thanks for answering!!!

    Question 1: Through the examples I search in my JDeveloper (Candidate 2) directory, found a file TestClient.java in the \BC4J\samples\Caching\src\demo directory with the following codes:
    // Create an instance of the application module by name, using local mode
    String _am  = "demo.DemoModule"; // Fully-qualified application module name
    String _cf  = "DemoModuleLocal"; // Configuration name for connection info
    ApplicationModule am = Configuration.createRootApplicationModule(_am,_cf);
    // Find the Managers view object by name in the application module
    ViewObject mgrVO = am.findViewObject("Managers");
    // We're done with the AM instance, so release it
    Configuration.releaseRootApplicationModule(am,true);
    Is it for testing only or really useful for the production environment? Am I doing the right thing if i use such method to establish my web client connection? What's the pros and cons for using this method? Any other better alternatives?The Configuration API (createRootApplicationModule, releaseRootApplicationModule) will work. However, please note
    that it is intended for java clients that will hold an ApplicationModule reference for a long duration. The BC4J web
    frameworks (represented, for example, by the ApplicationModule and ReleasePageResources tags) all use the
    SessionCookie interface to acquire/release ApplicationModule instances on a per request basis. This will allow
    better scalability. Please see the pooling sample / documentation / javadoc for more information about using these
    APIs. The pooling sample servlet is located in \BC4J\samples\Pooling\src\demo\TestPoolServlet.
    Question 2: As I know BC4J automatically takes care of connection pooling as a default manner since version 3.2. Can I still use the following statement
    session.setAttribute("user_name", user_name); //Set session attribute
    String user_name = (String) session.getAttribute(user_name); // Get session attribute
    to capture and assign client session correctly for individual clients?BC4J will not interfere with your use of the HttpSession context. How do you intend the "user_name" to be used? Do
    you intend it to represent the DB user, JAAS user, etc. If you intend it to be used as the DB user you will need to declare
    the "user_name" to BC4J. Please see:
    http://technet.oracle.com/products/jdev/howtos/bc4j/howto_dynamic_jdbc.html
    Question 3: What codes should I use to achieve 'Transaction' update, which assembles the coding as follows:
    Connection.setAutoCommit(false); //disable auto commit
    connection.commit();
    connection.rollback();
    connection.close();ApplicationModule.getTransaction().commit();
    ApplicationModule.getTransaction().rollback();
    If you are using the Configuration or SessionCookie APIs, as mentioned above, then the connection lifecycle will be
    managed for you. So, you should not need to invoke connection.close().
    Thanks for answering!!!
    Hope this helps.
    JR

  • Does a sql server client application needs to be modified to allow it to have benefits of running on a SQL Server 2012 cluster?

    I have a client application in c++ which interacts with sql server database. My question is whether I need to make any changes to the client application code to allow it to have the benefits of running on a SQL server 2012 cluster environment. 
    To elaborate more on my query my concern is for e.g if my application has called an api to execute a sql query and during
    the execution of this query the sql server (part of the cluster) goes down then as per my understanding the sql cluster would ensure that another node takes up the task from the current sql server which has gone down. Is this transition transparent to the
    client application or in such a case my client application needs to again make a new connection and again execute the query?

    Hello,
    Just as Shanky post above, When you connected to a database in an availability group and specify the availability group listener in the connection string, if the availability group fails over, the original connection is broken, your application
    should try a new connection after the failover.
    So, when connect to an availability group, please try to increasing connection timeout and implementing connection retry logic to increase the probability of successful connection.
    Reference:SqlClient Support for High Availability, Disaster Recovery
    Regards,
    Fanny Liu
    If you have any feedback on our support, please click here.
    Fanny Liu
    TechNet Community Support

Maybe you are looking for