Listening to multiple clients.

how do it make a server listen to multiple clients and process them.
so far i have reached just this
while(true)
socket=serversocket.accept();
but what after this.how to handle separate each client........

how do it make a server listen to multiple clients
and process them.
so far i have reached just this
while(true)
socket=serversocket.accept();
but what after this.how to handle separate each
client........For threading go through this
http://java.sun.com/docs/books/tutorial/essential/concurrency/
while(true)
socket=serversocket.accept();You have to start a new thread for each client and then do the needful.
Say you can implement two different threads to handle the messages to be sent and the messages to be received. Get the required inputstream and outputstream for the socket and use it in each thread.
like
BufferedReader in=new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
PrintWriter out=new PrintWriter(clientSocket.getOutputStream(),true);

Similar Messages

  • Use 1 listener for multiple database in a server

    hi guys,
    just want to check whether this is the right way to configure my Listener.ORA . I am using 1 listener.ora to listen for incoming request connection from remote client. There are multiple databases installed in a server.
    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ora03)(PORT = 1521))
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (GLOBAL_DBNAME = O11R2)
    (ORACLE_HOME = /oracle/app/oracle/product/11.2.0/db_1)
    (SID_NAME = O11R2)
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (GLOBAL_DBNAME = O10G)
    (ORACLE_HOME = /oracle/app/oracle/product/10.2.0/db_1)
    (SID_NAME = O10G)
    )sorry i am reading about it so did not install another database to test out. Just thinking in the line that it mention that the list of SID is refering to the multiple database that is installed in a server and i am using 1 listener.
    Please further advice.

    Shivananda Rao wrote:
    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ora03)(PORT = 1521))
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (GLOBAL_DBNAME = O11R2)
    (ORACLE_HOME = /oracle/app/oracle/product/11.2.0/db_1)
    (SID_NAME = O11R2)
    (SID_DESC =
    (GLOBAL_DBNAME = O10G)
    (ORACLE_HOME = /oracle/app/oracle/product/10.2.0/db_1)
    (SID_NAME = O10G)
    )Please use as above. You can have one listener for multiple databases.right right so it the pattern goes like this:
    SID_LIST_LISTENER =
         (SID_LIST =
              (SID_DESC =
              (GLOBAL_DBNAME = AAAA)
              (ORACLE_HOME = /oracle/app/oracle/product/11.2.0/db_1)
              (SID_NAME = AAAA)
              (SID_DESC =
              (GLOBAL_DBNAME = BBBB)
              (ORACLE_HOME = /oracle/app/oracle/product/10.2.0/db_1)
              (SID_NAME = BBBB)
         )thanks !

  • Multiple clients on socket connection

    Hi!
    I understand that it is possible that multiple clients listen to one server (on the same port) and even write to it (then it should be a multi-threaded server).
    But i would like to refuse connectios, if one client is connected. How can I do that?
    In my case I have a (single threaded) server. Now one clients connects. The server waits to receive data from the client and answers, without ever closing the port. that works.
    Now if I connect with a second client, the openicng of the socket in the second client works fine, although the server does not seem to notice the second client. Communication is not possible between the server and the second client, and the server doesn't answer to the first client anymore, although he receives data from it.
    So, since the server does not seem to notice the second client (does not accept the connection) and I don't get an exception at the second client, what can I do?
    Thank you for your help!
    concerned Code (if you want to take a look at it):
    CLIENT:
    socket = new Socket(hostname, echo_port);
    SERVER:
    try
    ServerSocket waitingsocket = new ServerSocket(echo_port);
    try
         socket= waitingsocket.accept();
         System.out.println("Client connected");
         ReaderThread reader = new ReaderThread( this, socket );
         reader.start();          
    catch (Exception e)
    READER:
    public void run()
         while (true)
              try {
                   int bytesRead = inStream.read(inputBuffer,
                   0, inputBuffer.length);
                   readCallback.tcpUpdate(inputBuffer,bytesRead);
              catch (Exception oops)
                   readCallback.tcpUpdate(null,-1);
              

    Just to make sure this is clear: You can NOT have multiple clients on a given socket connection. You CAN have multiple clients connected to a particular port on a given server, but each client will be communicating with the server through a different of socket.
    The usual approach here is to set up a listening ServerSocket on the desired port, call accept() on it, then process the communication from the returned Socket object. This is usually done by spawning a new thread and allowing it to handle the socket communication, while the ServerSocket loops around to another accept() for the next communication.
    Here's an excellent intro to the concepts (the code is really ugly and poorly implemented, but it does a good job of explaining the overall concept). I used this as a starting point, and now (after a whole lot of development) have a pretty sweet extensible web server class that handles template expansion, etc... (I use this as a quick and dirty UI for some of my apps, instead of requiring the user to install a JSP container):
    http://developer.java.sun.com/developer/technicalArticles/Networking/Webserver/
    - K

  • How can I connect multiple clients to a single client ?

    I am currently developing an instant messaging program.I created a server and connected multiple clients to it by using thread logic.However I do not know how to connect multiple client to a single client.
    What shall I do for that?Does anybody know a good tutorial or sample program?Or shall anybody explain me what I shall do for building the Instant Messaging part of my chat program?
    Thank u in advance.

    You may use UDP multicast socket. But since you are using the UDP protocol you might risk losing the data that you send since UDP does not guarantee the safe transfer of data.
    Alternately, you might create a server that allows multiple client to connect to it whose connection Socket objects are then stored in a Vector <Socket> object. The server then sends back data to the connected client about the other clients connected to it. Now when the client wants to send data (like an IM) to another connected client, it has to send a request to the server specifying the client login name and the server in turn streams that particular client's Address and Port to the requesting client. The requesting client then initiates the connection with the other client and then starts a conversation. One more thing, when the client communicates it needs to send information to the server like the name by which it likes to be referenced. In this scenario the server acts like a central repository for clients to query the existence of other clients in the chat room. Each client here runs a thread that listens to incoming connections and when a connection is established, may be opens a IM window or something.
    The third option is to make the server to relay the information from one client to another. Like say, I'm connected to whoopy server and i want to send "Hello" to jackson, then i send the message (ie, Hello) along with the name of the client to which i wish to send it to (ie, jackson). The server then performs a lookup in its Vector <Socket> object and then initiates a connection with jackson and sends the information. However, this method is pretty costly in that you will be wasting a lot of processing behind the server.
    --Subhankar
    P.s. If you stumble upon any other brilliant ideas let me know.

  • How does create a server with multiple Clients ?

    Any people can lead me .
    How does create a server with multiple Clients ?
    Thanks

    For a multithreaded server you will need a thread to listen and at least one thread per client. If the conversation is half duplex, one thread per client works very well, if it's full duplex you will find one thread to send and one to receive much easier to program.
    I posted a Simple Socket Server that uses 1+2*clients threads.

  • Handling multiple clients

    I am trying to create a server that accepts multiple connections. I know that this question is asked a lot, but I cannot figure out what is wrong with mine...aside, possibly, everything. This is my server code, I used a frame to display this information and the code is pretty rough because I am brand new to this networking stuff (I am finding it pretty difficult).
    import java.awt.*;
    import java.util.*;
    import java.net.*;
    import java.io.*;
    import javax.swing.*;
    import java.awt.event.*;
    public class ServerFrame extends JFrame {
         private JTextField enterField;
         private JTextArea displayArea;
         private ObjectOutputStream output;
         private ObjectInputStream input;
         private ServerSocket server;
         private Socket connection;
         private int counter = 1;
         private String name;
         public ServerFrame() {
            super("Server");
            name = JOptionPane.showInputDialog("Enter your name: ","Mark");
            enterField = new JTextField();
            enterField.setEditable(false);
            enterField.addActionListener(
                 new ActionListener(){
                      public void actionPerformed(ActionEvent event){
                           sendData(event.getActionCommand());
                           enterField.setText("");
            add(enterField, BorderLayout.NORTH);
            displayArea = new JTextArea();
            add(new JScrollPane(displayArea), BorderLayout.CENTER);
            setSize(400,250);
            setVisible(true);
        public void runServer(){
             try{
                  server = new ServerSocket(12345,100);
                  while(true){
                       try{
                            waitForConnection();
                            getStreams();
                            processConnection();
                       catch(EOFException eofException){
                            displayMessage("\nServer terminated connection");
                       finally{
                            closeConnection();
                            counter++;
                            continue;
             catch(IOException ioException){
                  ioException.printStackTrace();
        private void waitForConnection() throws IOException{
             displayMessage("Waiting for connection\n");
             connection = server.accept();
             ServerClass Client = new ServerClass(connection);
             Client.start();
             displayMessage("Connection " + counter + " received from: " +
             connection.getInetAddress().getHostName() + " (IP: " +connection.getInetAddress().getHostAddress() +")");
        private void getStreams() throws IOException{
             output = new ObjectOutputStream(connection.getOutputStream());
             output.flush();
             input = new ObjectInputStream(connection.getInputStream());
             displayMessage("\n--Accpeted User--\n");
        private void processConnection() throws IOException{
             String message = "";
             sendData(message);
             setTextFieldEditable(true);
             do{
                  try{
                       message = (String) input.readObject();
                       displayMessage("\n" + message);
                  catch(ClassNotFoundException classNotFoundException){
                       displayMessage("\nUnknown object type received");
             } while(!message.equals("CLIENT>>> TERMINATE"));
        private void closeConnection(){
             displayMessage("\nTerminating connection\n");
             setTextFieldEditable(false);
             try{
                  output.close();
                  input.close();
                  connection.close();
             catch(IOException ioException){
                  ioException.printStackTrace();
        private void sendData(String message){
             try{
                  output.writeObject(name+": " +message);
                  output.flush();
                  displayMessage("\n"+name+": " + message);
             catch(IOException ioException){
                  displayArea.append("\nError writing object");
        private void displayMessage(final String messageToDisplay){
             SwingUtilities.invokeLater(
                  new Runnable(){
                       public void run(){
                       displayArea.append(messageToDisplay);
        private void setTextFieldEditable(final boolean editable){
             SwingUtilities.invokeLater(
                  new Runnable(){
                       public void run(){
                            enterField.setEditable(editable);
        protected void windowClosed() {
            System.exit(0);
    }I used an example from our class books, but I have modified it a bit. The waitForConnections() method is where the server listens for incoming clients. The ServerClass constructor is as follows:
    import java.net.*;
    import java.util.*;
    import javax.swing.*;
    import java.io.*;
    public class ServerClass extends Thread
         Socket SOCK = null;
         public ServerClass(Socket sock)
              SOCK = sock;
         public void run(){
              try{
                   PrintWriter out = new PrintWriter(SOCK.getOutputStream(),true);
                   BufferedReader in = new BufferedReader(
                        new InputStreamReader(
                             SOCK.getInputStream()));
              out.close();
              in.close();
              SOCK.close();
         }catch(IOException e){
              e.printStackTrace();
    }I used the ServerClass to try and make a thread that would construct itself each time a new connection is made to the server. I honestly cannot say where I went wrong or where I am looking for the problems... I am not very familiar with threads either, but I have been trying.
    If somebody could help me out here, I would really appreciate it, thank you.

    Well, I believe the biggest problem is somewhere in my thread. I have tried using this thread to create sockets and allow connections, but whenever I try to host the server, it won't even accept connections. It accepts then terminates. Before I start to talk about the actual connection process, I need verification on this thread I made to see if it would work. Again, I am not exactly sure what the PrintWriter and BufferedReader do...I followed some examples and have been experimenting with them. I have looked it over several times and I think it looks right, but I am very new to this network programming and whatnot so I am not certain of how close I am.
    import java.net.*;
    import java.util.*;
    import javax.swing.*;
    import java.io.*;
    public class ServerClass extends Thread
         Socket SOCK = null;
         public ServerClass(Socket sock)
              SOCK = sock; //hopefully this will take the server.accept() method.
         public void run(){
              try{
                      PrintWriter out = new PrintWriter(SOCK.getOutputStream(),true);
                   BufferedReader in = new BufferedReader(
                        new InputStreamReader(
                             SOCK.getInputStream()));
              out.close();
              in.close();
              SOCK.close();
         }catch(IOException e){
              e.printStackTrace();
    }

  • Tcp listen accepts multiple simultaneo​us connection​s even when closed

    LV 6.0.2, win 2k
    I am trying to set up a server that will recieve data from multiple clients. If I set up a TCP listen vi on the server, then I have found that any (or the same) client can open multiple connections on this port and send data to it even though the server has only called the TCP listen VI once and only has a reference for the first connection. The subsequent connections seem to be accumlating in the port buffer and the data can in fact be retrieved with subsequent calls to TCP listen on that port regardless of whether the client has closed the connection long ago and forgotten about the transaction.
    This could perhaps be considered either a feature or a bug. For me it is undesirabl
    e. I would prefer that attempted connections to the server were rejected if the server is not actually actively listening on the port. Otherwise clients can easily flood the port.
    Is there some way to control this behaviour, or perhaps a completely different approach? or is there some way to control the port settings such as buffer size or max number of connections allowed, and a way to clear the buffer without processing all the connections?
    Thanks in advance for any thoughts.

    Thanks for the comments.
    I don't seem to get the same behaviour you describe.
    When you say 'if the server closes the connection after reading the first request, then it will not process the rest of the requests waiting in the queue'. I find that after the server closes the connection (with TCP close connection) then there can still be a huge backlog of connections to the same port (requests) which are still waiting to be processed. Another call to TCP listen retrieves one of the old ones, it doesn't wait around for a legitimately new request from a client.
    Where you say 'When you leave the connection open on the server side, you can receive multiple commands this way, but it also blocks other clients from connecting until the curre
    nt client disconnects'. This is in fact my main difficulty. Even with a connection held open other clients (or the same client) CAN make other connections and send data through that connection. This then backs up if the server is not processing them faster than recieving them.
    I've attached vi's which should demonstrate the issue.
    I couldn't check your vi's. I'm missing the EOC error.vi and one other I think. Ultimately I hope to do something similar with multiple open connections, but still need the server to be able to refuse connections if it wants to. Something I don't seem to be able to do. The connections just keep coming regardless of how the server is set up.
    Thanks again.
    Steve
    Attachments:
    server.vi ‏229 KB
    client.vi ‏28 KB

  • Send data to multiple clients from a server

    My problem statement is this:
    A server is created, say X. Multiple clients are created, say A, B & C. If X sends a message to A it should reach only A and should not go to B or C. Similarly if X sends message to B it should not reach A or C. I made a one to one communication with the following code:
    //Server
    import java.io.*;
    import java.net.*;
    class X
    public static void main(String args[])throws Exception
    ServerSocket ss=new ServerSocket(4321);
    try
    Socket s=ss.accept();
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    DataOutputStream out = new DataOutputStream(s.getOutputStream());
    String str=in.readLine();
    out.writeBytes(str+"\n");
    s.close();
    ss.close();
    catch (IOException e){}
    //Client A
    import java.io.*;
    import java.net.*;
    class A
    public static void main(String args[])throws Exception
    try
    Socket s=new Socket("localhost",4321);
    BufferedReader in=new BufferedReader(new InputStreamReader(s.getInputStream()));
    System.out.println(in.readLine());
    s.close();
    catch(Exception e){}
    }But i dont know how to keep track of each client. Because all the clients sockets are created at the same port, ie. 4321. I think thread will help. But even then i dont know how to identify each client. Somebody please help. Thanks in advance.
    Edited by: sowndar on Dec 5, 2009 1:21 AM

    YoungWinston wrote:
    sowndar wrote:
    Ok. I think i have to attach an unique ID to each client message. So that, with the help of that ID, the server can identify each client. Have i caught ur point?If you don't mind using a port per client, you could do something like a receptionist taking incoming calls (on 4321 only).
    - Hi I'm Client xyz.
    - Hi Client xyz, please call me back on port abcd and I'll put you straight through to our server.
    Since 4321 is an "open line" you might have to have some sort of ID so that Clients know which return messages are meant for them, but messages on the other ports would all be direct Client to Server. Also, the Server is then is charge of port allocation and communication on the "open" port is kept to a minimum.4321 is the socket that the server is listening to. It's not what the actual communication will be carried out over. Run this, then telnet to port 12345 a few times
    public class TestServerSocket {
      public static void main(String[] args) throws Exception {
              ServerSocket server = new ServerSocket(12345);
              while (true) {
                   Socket socket = server.accept();
                   System.err.println(socket.getPort());
    }Notice how each inbound connection is allocated a unique outbound socket.

  • Networking: problems servering multiple clients

    hi all
    i'm writing a simple client server system, with a multithread server, in order to serve multiple clients.
    the client's requests to connect to the server arrive to a port (ie 1025), and then the server, through a method returns to the client another port number, and then the comunication between them starts through the new port.
    all work very fine, but i tried, with 2 computers, to start two clients at the "same time" (with a gap of few milliseconds), and my system "crashes".
    i think that is a problem due to the second request that arrives while the comunication of the port from the server to the client happens.
    is there a way to "queue" the requests arriving to the 1025 port of my server?
    if i wasn't clear i can post some code
    thanx in advance
    sandro

    Yes, teh code I posted does nothing more then listen for incoming conections and create a new Thread wich gets the Socket created by the accept to play with. This will happen for any incoming connection on the right port and will always be handeled the same.
    As you'll see in the code i posted, there is some time between ServerSocket.accept returning a Socket and ServerSocket.accept being started again. This time shouldn't be to long to be sure the serversocket is listening for incoming connections when they arrive, so don't do to much inside the loop. If your system should handle a lot of connections simultaneously wou might have to optimise this be doing thing like having a few ClientThreads created allready to save the time of creating a new Thread. This becomes more important if you ClientThread is complex and slow to create. But when handelin less the say 25 clients you should be fine with this.

  • Making a chat server that supports multiple clients!

    This is what I got so far:
    import java.net.*;
    import java.io.*;
    public class Server{
         public static void main(String [] args){
              ServerSystem ssys = new ServerSystem();
              ssys.ServerMethod();
    class ServerSystem{
         static ServerSocket ss;
         public void ServerMethod(){
              try{
                   ss = new ServerSocket(27700);
                   boolean listening = true;
                   for(;listening;){
                        ClientThread ct = new ClientThread(ss.accept());
                        ct.start();
                        ss.close();
              }catch(Exception e){
                   System.exit(0);
    class ClientThread extends Thread{
         ServerSystem ssys = new ServerSystem();
         ServerSocket ss = ssys.ss;
         public void run(){
              try{
                   BufferedReader in = new BufferedReader(new InputStreamReader(ss.getInputStream()));
                   PrintWriter out = new PrintWriter(ss.getOutputStream(),true);
              }catch(Exception e){
                   System.out.println(e);
    }3 Errors:
    ClientThread ct = new ClientThread(ss.accept()); CONSTRUCTOR : CANNOT RESOLVE SYMBOL
    BufferedReader in = new BufferedReader(new InputStreamReader(ss.getInputStream())); METHOD : CANNOT RESOLVE SYMBOL InputStream
                   PrintWriter out = new PrintWriter(ss.getOutputStream(),true); METHOD : CANNOT RESOLVE SYMBOL OutputStream
    First of all, how do I fix those. Second, am I on the right track for a server that supports multiple clients? Please help me with this.
    Thanks!

    well, since I feel kinda bad for just re-posting the link to the API docs previously posted by supermicus I shall elaborate - though, since my reading for comprehension skills are clearly lacking, I will not attempt to teach you to read.
    This conversation should be held in the "New to Java Technology" forum, BTW.
    Java derives a lot of its power from the huge library of classes that ships with it, which is called the API. These classes are grouped into packages roughly along functional lines, so you should expect to see some relationship between the classes found in a given package - the java.net.* classes all pertain to networking. The API documentation describes three things about each class - fields that are available, constructors that you can use, and methods that you can call. Basically, anything at all that you can do with a given class (ThreadGroup, for instance) can be found in the documentation for that class. Typically (for non-static classes), you call the constructor that seems most appropriate via the "new" keyword, and, using the reference returned from that, you call the method that does what you want. It's all outlined in the docs.
    If you don't get what you need from the docs, then read the appropriate Tutorial (also in the list of links to the left of your screen) find the one on Threads and off you go.
    I hope this helped.
    Lee

  • Accessing the same stateful session bean from multiple clients in a clustered environment

    I am trying to access the same stateful session bean from multiple
              clients. I also want this bean to have failover support so we want to
              deploy it in a cluster. The following description is how we have tried
              to solve this problem, but it does not seem to be working. Any
              insight would be greatly appreciated!
              I have set up a cluster of three servers. I deployed a stateful
              session bean with in memory replication across the cluster. A client
              obtains a reference to an instance of one of these beans to handle a
              request. Subsequent requests will have to use the same bean and could
              come from various clients. So after using the bean the first client
              stores the handle to the bean (actually the replica aware stub) to be
              used by other clients to be able to obtain the bean. When another
              client retrieves the handle gets the replica aware stub and makes a
              call to the bean the request seems to unpredictably go to any of the
              three servers rather than the primary server hosting that bean. If the
              call goes to the primary server everything seems to work fine the
              session data is available and it gets backed up on the secondary
              server. If it happens to go to the secondary server a bean that has
              the correct session data services the request but gives the error
              <Failed to update the secondary copy of a stateful session bean from
              home:ejb20-statefulSession-TraderHome>. Then any subsequent requests
              to the primary server will not reflect changes made on the secondary
              and vice versa. If the request happens to go to the third server that
              is not hosting an instance of that bean then the client receives an
              error that the bean was not available. From my understanding I thought
              the replica aware stub would know which server is the primary host for
              that bean and send the request there.
              Thanks in advance,
              Justin
              

              If 'allow-concurrent-call' does exactly what you need, then you don't have a problem,
              do you?
              Except of course if you switch ejb containers. Oh well.
              Mike
              "FBenvadi" <[email protected]> wrote:
              >I've got the same problem.
              >I understand from you that concurrent access to a stateful session bean
              >is
              >not allowed but there is a
              >token is weblogic-ejb-jar.xml that is called 'allow-concurrent-call'
              >that
              >does exactly what I need.
              >What you mean 'you'll get a surprise when you go to production' ?
              >I need to understand becouse I can still change the design.
              >Thanks Francesco
              >[email protected]
              >
              >"Mike Reiche" <[email protected]> wrote in message
              >news:[email protected]...
              >>
              >> Get the fix immediately from BEA and test it. It would be a shame to
              >wait
              >until
              >> December only to get a fix - that doesn't work.
              >>
              >> As for stateful session bean use - just remember that concurrent access
              >to
              >a stateful
              >> session bean is not allowed. Things will work fine until you go to
              >production
              >> and encounter some real load - then you will get a surprise.
              >>
              >> Mike
              >>
              >> [email protected] (Justin Meyer) wrote:
              >> >I just heard back from WebLogic Tech Support and they have confirmed
              >> >that this is a bug. Here is their reply:
              >> >
              >> >There is some problem in failover of stateful session beans when its
              >> >run from a java client.However, it is fixed now.
              >> >
              >> >The fix will be in SP2 which will be out by december.
              >> >
              >> >
              >> >Mike,
              >> >Thanks for your reply. I do infact believe we are correctly using
              >a
              >> >stateful session bean however it may have been misleading from my
              >> >description of the problem. We are not accessing the bean
              >> >concurrently from 2 different clients. The second client will only
              >> >come into play if the first client fails. In this case we want to
              >be
              >> >able to reacquire the handle to our stateful session bean and call
              >it
              >> >from the secondary client.
              >> >
              >> >
              >> >Justin
              >> >
              >> >"Mike Reiche" <[email protected]> wrote in message
              >news:<[email protected]>...
              >> >> You should be using an entity bean, not a stateful session bean
              >for
              >> >this application.
              >> >>
              >> >> A stateful session bean is intended to be keep state (stateful)
              >for
              >> >the duration
              >> >> of a client's session (session).
              >> >>
              >> >> It is not meant to be shared by different clients - in fact, if
              >you
              >> >attempt to
              >> >> access the same stateful session bean concurrently - it will throw
              >> >an exception.
              >> >>
              >> >> We did your little trick (storing/retrieving handle) with a stateful
              >> >session bean
              >> >> on WLS 5.1 - and it did work properly - not as you describe. Our
              >sfsb's
              >> >were not
              >> >> replicated as yours are.
              >> >>
              >> >> Mike
              >> >>
              >> >> [email protected] (Justin Meyer) wrote:
              >> >> >I am trying to access the same stateful session bean from multiple
              >> >> >clients. I also want this bean to have failover support so we want
              >> >to
              >> >> >deploy it in a cluster. The following description is how we have
              >tried
              >> >> >to solve this problem, but it does not seem to be working. Any
              >> >> >insight would be greatly appreciated!
              >> >> >
              >> >> >I have set up a cluster of three servers. I deployed a stateful
              >> >> >session bean with in memory replication across the cluster. A client
              >> >> >obtains a reference to an instance of one of these beans to handle
              >> >a
              >> >> >request. Subsequent requests will have to use the same bean and
              >could
              >> >> >come from various clients. So after using the bean the first client
              >> >> >stores the handle to the bean (actually the replica aware stub)
              >to
              >> >be
              >> >> >used by other clients to be able to obtain the bean. When another
              >> >> >client retrieves the handle gets the replica aware stub and makes
              >> >a
              >> >> >call to the bean the request seems to unpredictably go to any of
              >the
              >> >> >three servers rather than the primary server hosting that bean.
              >If
              >> >the
              >> >> >call goes to the primary server everything seems to work fine the
              >> >> >session data is available and it gets backed up on the secondary
              >> >> >server. If it happens to go to the secondary server a bean that
              >has
              >> >> >the correct session data services the request but gives the error
              >> >> ><Failed to update the secondary copy of a stateful session bean
              >from
              >> >> >home:ejb20-statefulSession-TraderHome>. Then any subsequent requests
              >> >> >to the primary server will not reflect changes made on the secondary
              >> >> >and vice versa. If the request happens to go to the third server
              >that
              >> >> >is not hosting an instance of that bean then the client receives
              >an
              >> >> >error that the bean was not available. From my understanding I
              >thought
              >> >> >the replica aware stub would know which server is the primary host
              >> >for
              >> >> >that bean and send the request there.
              >> >> >
              >> >> >Thanks in advance,
              >> >> >Justin
              >>
              >
              >
              

  • We have created shared folder on multiple client machine in domain environment on different 2 OS like-XP,Vista, etc. from some day's When we facing problem when we are access from host name that shared folder is accessible but same time same computer when

    Hello All,
    we have created shared folder on multiple client machine in domain environment on different 2 OS like-XP,Vista, etc.
    from some day's When we facing problem when we are access from host name that shared folder is accessible but same time same computer when we are trying to access the share folder with IP it asking for credentials i have type again and again
    correct credential but unable to access that. If i re-share the folder then we are access it but when we are restarted the system then same problem is occurring.
    I have checked IP,DNS,Gateway and more each & everything is well.
    Pls suggest us.
    Pankaj Kumar

    Hi,
    According to your description, my understanding is that the same shared folder can be accessed by name, but can’t be accessed be IP address and asks for credentials.
    Please try to enable the option below on the device which has shared folder:
    Besides, check the Advanced Shring settings of shared folder and confrim that if there is any limitation settings.
    Best Regards,
    Eve Wang
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Support, contact [email protected]

  • WDS 2012 R2 - Cannot PXE multiple clients at the same time

    Hello All,
    This is my first post on here so I apologize if this is the wrong place.  I work for a school district and we are implementing WDS 2012 R2.  We've been extremely satisfied with the speeds and ease of use through unattend files.  However, for
    the past month I've been looking for a possible answer to a problem that has plagued us from day one of implementation.
    So here's the problem:
    I have a stand alone WDS server which is not a domain controller and is not our DHCP server.  I have IP helpers and broadcast forwarders setup on the network.  As well as option 66 and 67 in DHCP.  So far so good right!
    Well that's partially right.  When we boot one client at a time to the WDS server.  Everything works as intended.  We can TFTP the necessary files from the WDS server.  Everything boots up and we're off and running.
    However, if we boot up two or more clients at the same time.  The WDS server never responds to the traffic.  The clients get their DHCP information.  They start the referral and download from the WDS server, but get no response.  I'm
    really hoping that someone on here would have some insight of something I can try.  I've about exhausted my list of peers and contacts.  They're all stumped as well and were smart enough to stay with 2008 WDS.
    I would prefer to stick with 2012 R2 since it's setup and working for the most part.  With only this one hiccup.
    Thanks in advance for any guidance!

    Hello Daniel,
    I appreciate the reply and apologize for taking so long to get back to this.   Things have been a little hectic over here.
    I have tried everything on this forum and I am still unsuccessful in PXE booting multiple clients at the same time.
    Multicast is enabled on the server, and it works for the clients.  However, as stated in the original post.  I cannot boot multiple machines at the same time.  I can start them from the image selection screen around the same time though.  So,
    that appears to be working fine.

  • How to use multiple clients within JCO?

    Hi,
    I'm pretty new to configuring Web Dynpro's with it's JCO connections. I have the following question.
    We are using one portal (SAP EP 6.0_640 SP15) and one R/3 system (SAP ECC 5.0) with multiple clients (multiple customers who are all using the same portal).
    Do I have to deploy a web dynpro for each client and maintain it's JCO connection for each client?
    Or is there another way how I can set this up?
    Thanks in advance.
    Kind regards,
    Dave Arends

    Hi Dave,
    <b><i>Do I have to deploy a web dynpro for each client and maintain it's JCO connection for each client?
    Or is there another way how I can set this up?</i></b>
    You dont need to deploy a web dynpro for each client . You can use same JCO connection for multiple User ID's  ( multiple Clients mean multiple user ID's on the same portal ).
    If this is the case then single JCo connection is enough to pull data from R/3 and show on portal page .
    Thanks,
    Nanda

  • How to control one server with multiple clients via TCP/IP

    I am wanting to control a single server with multiple clients.  Only one client would be active at a time, so there would be no conflict.  I want to use TCP/IP.  So far, I have programmed a cluster that passes data back to the server with no problems.  The challenge come in when a second client is added to the mix.  I have't been able to figure out how to turn each client on and send the appropriate data and then turn it off so it doesn't keep sending the same data to the server. 
    Here are the things that I have considered and did some preliminary testing, but don't really know how to impliment:
    1.  Send a numeric on the front of the cluster packet that tells the server that data is on the way.
    2.  Send a boolean on the front of the cluster packet to somehow turn the server TCP/IP on.
    The problem I have found is that LabVIEW TCP/IP doesn't like to be turned on and off.  If it doesn't get the data it expects, it goes into a reset mode and that kills the response time.
    Any help?

    You should consider implementing a set of simple one-byte commands that can be sent back and forth between the Server and the Clients. You can base all of these ideas off the example in the Example Finder under Networking >> TCP and UDP called Multiple Connections - Server.
    You will have two loops in the server VI: one to wait for new connections, and one to send and receive data from the existing connections. For instance, after one of the clients connects, it can request control of the server to send data to it by sending the character "R" for request. Every time the send/receive loop of the Server executes, the first thing it can do is to check all the existing connections to see if any of the clients have sent a control request ("R"). If so, it will create a buffer (array) of control requests. This could be in the form of Connection IDs or indexes in the array for a particular Connection ID. Your choice.
    After the Server receives a request for contol, if it is not already under control by another client, then it can send a response to the first client on the control request list. For instance, the server could send the first client a "S" command for send. Note that after the clients send their control request, they should execute a TCP Read and wait indefinitely for the server to respond with the one-byte "S" command. Then, once the client in control is finished sending data to the server, it could send the character "X" telling the Server to release it from control.
    The example I mentioned above already does a similar thing. Note how when a client wants to disconnect, they send the letter "Q". You can see this in the Multiple Connections - Client VI. The Server then checks each individual connection to see if it's received this one-byte command, and if it has, it closes the connection to the client. This is what you would want to implement, but instead of having just one command, you'll have to distinguish between a few and build up a buffer of control requests.
    Finally, if a client does decide to disconnect in your application, they could send the command "Q" just like the example above. At this point, close the connection and remove that Connection ID from the array of connections. You will also have to handle the case that this client was in the request control waiting line when it disconnected, in which case you need to delete it from that array as well.
    This will definitely work for you, but it will take some work. Best of luck!
    Jarrod S.
    National Instruments

Maybe you are looking for