Socket write in GUI Client

I have a GUI Swing client that is communicating with a Server with Sockets.
Currently, when a message needs to be sent ( Socket.write ), I am just passing the message to my thread-safe sendMessage() method.
I have an application currently calling this from the Event Thread without issue, but I have heard that this could create a possible dead-lock, but I haven't been able to pinpoint the reasoning behind this.
What pitfalls occur if this method, which writes to the Socket's OutputStream directly, is called from the GUI Event Thread?
Thanks in Advance.

Thank you all for the input.
I think what I will do is dispatch a new Thread to do the sendMessage if it is invoked from within the GUI Event Thread.
Which would be better? Create a new anonymous thread or use SwingUtilities.invokeLater ?
1)
     void actionPerformed( ActionEvent e )
             new Thread( new Runnable() { void run() { sendMessage(data); } } ).start();
     }2)
     void actionPerformed( ActionEvent e )
             SwingUtilities.invokeLater( new Runnable() { void run() { sendMessage(data); } } );
     }

Similar Messages

  • In AIR 3.x, a socket write()+flush() on a client will hang app if peer adverts TCP ZERO WINDOW

    In AIR 3.x, a socket write() + flush() on a client will hang (and freeze the entire app) if the socket peer advertises a ZERO TCP Window, i.e. no space available in peer receiver's socket buffer.
    AIR on Windows insists that the developer flush() the socket in order to write (any data at all).  When the peer (receiver) advertises a 0 byte tcp window, the client flush() call can sometimes take 10 seconds (i.e. 10000 milliseconds), whereas normally it should take 10 to 50 milliseconds.
    Additionally, AIR stayed in hung position.  Since the socket had TCP KEEPALIVE option enabled (at the server), the socket stayed open.  I let it stay hung overnight.  The next day when I rebooted the server, the socket got closed and finally the AIR program "RETURNED FROM the sock.flush()" call.  A timestamp before and after the call to flush() showed that the flush() call was in hung state for 56472475 milliseconds, i.e. 15.7 hours!  After it returned from the flush() call the AIR app was responsive and seemed to work properly.  Thus proving that it was indeed stuck (or blocked) on the flush() call for 15 hours trying to drain the data to a socket with zero tcp window condition.
    A tcp zero window condition on 1 socket hanging an entire app sounds concerning.
    Solution Suggestions:
    (1) What is needed is for the OutputProgress event to include a field for 'bytes that can be written safely without blocking on the socket', i.e. 'space available in underlying platform socket buffer' which would account for the socket send buffer size.
    (2) An alternative solution would be for AIR to provide a write-timeout setsockopt (or a writeTimeout() method on the socket), and return flush with an error (or EWOULDBLOCK), and call the OUTPUTPROG event only when there is enough space available.
    If there are any other workarounds, please let me know.
    Thank you.

    Question:  Does Adobe AIR expose the getsockopt() and setsockopt() calls on a socket?  It would be useful to apps to tune the io buffer sizes.
    Additional Details:
    RTT = 100+ milliseconds
    TCP Window Scaling enabled
    Secure Socket
    Hard to reproduce with plain TCP socket, but occurs without fail with SecureSocket.  Not knowing the underlying code base, am wondering if it is because the SSL encryption overhead (bytes) throws off the buffer available size compution in secure_sock.flush() .
    Thanks.

  • JCOM throwing SocketException: Connection reset by peer: socket write error

    I have an ejb which is calling a simple ActiveX component using JCOM.
    Ocassionally the ejb loses the ability to connect to the ActiveX component. Any attempt to call a method results in a java.net.SocketException: Connection reset by peer: socket write error.
    However the ActiveX component continues to run correctly. I can still connect to it using a vb test client. This is using com to connect, not DCOM as used by JCOM(JIntegra).
    The application server and the ActiveX component are running on the same server.
    Any suggestions as to why the JIntegra DCOM request could be failing?
    Thanks,
    Greg.

    I have an ejb which is calling a simple ActiveX component using JCOM.
    Ocassionally the ejb loses the ability to connect to the ActiveX component. Any attempt to call a method results in a java.net.SocketException: Connection reset by peer: socket write error.
    However the ActiveX component continues to run correctly. I can still connect to it using a vb test client. This is using com to connect, not DCOM as used by JCOM(JIntegra).
    The application server and the ActiveX component are running on the same server.
    Any suggestions as to why the JIntegra DCOM request could be failing?
    Thanks,
    Greg.

  • Simple Webserver SocketException: socket write error

    I'm stuck and need some help solving this problem.
    When I try to get the 404 message with the webserver, I get this in the output console:
    "HttpRequest - java.net.SocketException: Connection reset by peer: socket write error"
    I have found the part that makes the problem, but I can't find a solution.
    I hope someone can help me with this!
                try
                    outputStream.writeBytes(entityBody);
    import java.io.*;
    import java.net.*;
    import java.util.*;
    public final class WebServer
        public static void main(String[] args) throws Exception
            //Port number
            int port = 8080;
            // Establish the listen socket.
            ServerSocket webSocket = new ServerSocket(port);
            // Process HTTP service requests in an infinite loop.
            while(true)
                // Listen for a TCP connection request
                Socket tcpSocket = webSocket.accept();
                HttpRequest httpRequest = new HttpRequest(tcpSocket);
                Thread thread = new Thread(httpRequest);
                thread.start();
    import java.io.*;
    import java.net.*;
    import java.util.*;
    public class HttpRequest implements Runnable
        final static String CRLF = "\r\n";
        private Socket socket;
        private String path = "public_html/";
        public HttpRequest(Socket socket)
            this.socket = socket;
        public void run()
            try
                processReguest();
            catch(Exception ex)
                System.err.println(ex);
        private void processReguest() throws Exception
            // Get a reference to the socket's input and output streams.
            InputStreamReader inputReader = new InputStreamReader(socket.getInputStream());
            DataOutputStream outputStream = new DataOutputStream(socket.getOutputStream());
            BufferedReader buffReader = new BufferedReader(inputReader);
            String requestLine = buffReader.readLine();
            System.out.println();
            System.out.println(requestLine);
            String headerLine = null;
            while((headerLine = buffReader.readLine()).length() != 0)
                System.out.println(headerLine);
            // Extract the filename from the request line
            StringTokenizer tokens = new StringTokenizer(requestLine);
            tokens.nextToken();
            String fileName = tokens.nextToken();
            //Prepend a "." so that the file request is within the current directory
            fileName = path + "." + fileName;
            //Open the request file
            FileInputStream fileInputStream = null;
            boolean fileExists = true;
            try
                fileInputStream = new FileInputStream(fileName);
            catch(FileNotFoundException ex)
                fileExists = false;
            //Construct the response message.
            String statusLine = null;
            String connection = null;
            String contentLength = null;
            String contentTypeLine = null;
            String entityBody = null;
            String contentType = contentType(fileName);
            if(!requestLine.startsWith("GET") && !requestLine.startsWith("HEAD"))
                statusLine = "HTTP/1.0 405 Method Not Allowed" + CRLF;
                contentLength = "Content-Length: 0" + CRLF;
                connection = "Connection: close" + CRLF;
                contentTypeLine = "Content-type: " + "text/html" + CRLF;
                entityBody = "<HTML><HEAD><TITLE>405 - Method Not Allowed</TITLE></HEAD><BODY>405 - Method Not Allowed</BODY></HTML>";
                fileInputStream = null;
                fileExists = false;
            else if(fileExists && !contentType.equals("application/octet-stream"))
                statusLine = "HTTP/1.0 200 OK" + CRLF;
                contentTypeLine = "Content-type: " + contentType(fileName) + CRLF;
                connection = "Connection: close" + CRLF;
                contentLength = "Content-Length: " + Integer.toString(fileInputStream.available()) + CRLF;
            else if(fileExists && contentType.equals("application/octet-stream"))
                statusLine = "HTTP/1.0 415 Unsupported Media Type" + CRLF;
                contentLength = "Content-Length: 0" + CRLF;
                connection = "Connection: close" + CRLF;
                contentTypeLine = "Content-type: " + "text/html" + CRLF;
                entityBody = "<HTML><HEAD><TITLE>415 - Unsupported Media Type</TITLE></HEAD><BODY>415 - Unsupported Media Type</BODY></HTML>";
                fileInputStream = null;
                fileExists = false;
            else
                statusLine = "HTTP/1.0 404 Bad Request" + CRLF;
                contentLength = "Content-Length: 0" + CRLF;
                connection = "Connection: close" + CRLF;
                contentTypeLine = "Content-type: " + "text/html" + CRLF;
                entityBody = "<HTML><HEAD><TITLE>404 - Not Found</TITLE></HEAD><BODY>404 - Not Found</BODY></HTML>";
            // Send the status line
            outputStream.writeBytes(statusLine);
            // Send the connection status
            outputStream.writeBytes(connection);
            // Send the Content-Length
            outputStream.writeBytes(contentLength);
            // Send the content type line
            outputStream.writeBytes(contentTypeLine);
            //Send a blank line to indicate the end of the header lines.
            outputStream.writeBytes(CRLF);
            // Send the enity body
            if(fileExists)
                //Den här funkar??
                sendBytes(fileInputStream, outputStream);
                fileInputStream.close();
            else
                try
                    outputStream.writeBytes(entityBody);
                catch(SocketException ex)
                    System.out.println(ex);
            socket.close();
            inputReader.close();
            outputStream.close();
            buffReader.close();
        private void sendBytes(FileInputStream fileInputStream, DataOutputStream outputStream) throws IOException
            //Construct a 1k buffer to hold bytes on their way to the socket
            byte[] buffer = new byte[1024];
            int bytes = 0;
            // Copy request file inte socket's output stream
            while((bytes = fileInputStream.read(buffer)) != -1)
                outputStream.write(buffer,0, bytes);
        private String contentType(String fileName)
            if(fileName.endsWith(".htm") || fileName.endsWith(".html"))
                return "text/html";
            else if(fileName.endsWith(".jpg") || fileName.endsWith(".jpeg"))
                return "image/jpeg";
            else if(fileName.endsWith(".gif"))
                return "image/gif";
            else if(fileName.endsWith(".png"))
                return "image/png";
            else if(fileName.endsWith(".txt"))
                return "text/plain";
            return "application/octet-stream";
    }

    You've told the client that the content length is zero bytes so I presume it closes the connection as soon as it finishes receiving headers. It depends what client you're using of course but that seems reasonable behaviour...

  • Two Socket errors: Socket write and Socket reset

    does anyone know the reasons and remedies for the error
    java.net.SocketException: Software caused connection abort: socket write error
    and
    java.net.SocketException: Connection reset by peer: socket write error
    please reply if someone knows
    thanks

    These are basically the same error triggered in different places.
    This occurs when the other end of the connection closes while the client is still writing to it.

  • Persistent socket connection - socket write error

    I'm connecting to a server using sockets. My application acts like a client, sending requests, and also like a server, listenning for notifications. I was using a client socket for the first task (send a message when required) and a server socket for the second (permanently listen for incoming messages). This needs to be some kind of persistent connection.
    It happens now I'm required to send and receive using the same port. The only way I found to do this is to have a single socket (client) bound to a certain port. It connects to the server and one thread keeps listenning for incoming messages (by reading the input stream) while another process is launched whenever I need to send a message (by writing to the socket's output stream). The socket is created only once (when the application starts) and its output/input streams reused whenever needed.
    This works well for a while. However, when I try to send a message after some idle time (lets say 20 minutes) strange things happen. The first attempt to send a message returns success (although nothing is actually received by the server). The second attempt returns java.net.SocketException: Software caused connection abort: socket write error. I don't understand this behaviour. Can there be a timeout? I only write to the socket after testing if it's connected.. So why is this failing? Also, any other ideas on how to send and receive using the same port? A different and better approach maybe..
    Thanks in advance

    Socket.isConnected just tells you whether you have personally called Socket.connect() or new Socket(host, port,...). It doesn't tell you anything about the state of the connection.
    You should certainly issue periodic application 'pings' at suitable intervals, and many application protocols do this. For example, Java RMI reuses connections that are less than 15 seconds old but only if they pass a ping test.
    In general however you can't insist on a persistent connection over TCP/IP, especially if you have this kind of hardware in the circuit. What you can do is recognize when the connection has been lost and form a new one. The network is going to fail somewhere some time and your program has to be robust against that.

  • Rmi - connection aborted:socket write error

    Weblogic 5.1 is running on my localhost and a remote object successfully registered on the weblogic. There is an applet trying to establish a connection and after the client is registered in the client list I get the following exception
    Thu Jan 25 11:29:06 PST 2001:<E> <ServletContext-General> Servlet failed with Ex
    ception
    java.net.SocketException: Connection aborted by peer: socket write error
    at java.net.SocketOutputStream.socketWrite(Native Method)
    at java.net.SocketOutputStream.write(SocketOutputStream.java:83)
    at weblogic.servlet.internal.ChunkUtils.writeChunks(ChunkUtils.java:88)
    at weblogic.servlet.internal.ServletOutputStreamImpl.flush(ServletOutput
    StreamImpl.java:121)
    at weblogic.servlet.internal.ServletOutputStreamImpl.writeStream(Servlet
    OutputStreamImpl.java:444)
    at weblogic.servlet.ClasspathServlet.sendResource(ClasspathServlet.java:
    114)
    at weblogic.servlet.ClasspathServlet.doGet(ClasspathServlet.java:87)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
    pl.java:105)
    at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletCon
    textImpl.java:742)
    at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletCon
    textImpl.java:686)
    at weblogic.servlet.internal.ServletContextManager.invokeServlet(Servlet
    ContextManager.java:247)
    at weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.jav
    a:361)
    at weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:261)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
    And the java console shows this message:
    java.lang.NoClassDefFoundError
    at weblogic/rmi/extensions/BasicRequest.init (BasicRequest.java)
    at weblogic/rmi/extensions/BasicRequest.<init> (BasicRequest.java:18)
    at weblogic/rmi/extensions/AbstractRemoteObjectReference.getRequest (AbstractRemoteObjectReference.java:71)
    at weblogic/jndi/internal/RemoteContextFactoryImpl_WLStub.getContext (RemoteContextFactoryImpl_WLStub.java:77)
    at weblogic/jndi/WLInitialContextFactoryDelegate.newRemoteContext (WLInitialContextFactoryDelegate.java:316)
    at weblogic/jndi/WLInitialContextFactoryDelegate.newContext (WLInitialContextFactoryDelegate.java:242)
    at weblogic/jndi/WLInitialContextFactoryDelegate.getInitialContext (WLInitialContextFactoryDelegate.java:205)
    at weblogic/jndi/Environment.getContext (Environment.java:122)
    at weblogic/jndi/Environment.getInitialContext (Environment.java:105)
    at weblogic/rmi/Naming.getContext (Naming.java:225)
    at weblogic/rmi/Naming.lookup (Naming.java:67)
    at AppletTest.init (AppletTest.java:30)
    at com/ms/applet/AppletPanel.securedCall0 (AppletPanel.java)
    at com/ms/applet/AppletPanel.securedCall (AppletPanel.java)
    at com/ms/applet/AppletPanel.processSentEvent (AppletPanel.java)
    at com/ms/applet/AppletPanel.processSentEvent (AppletPanel.java)
    at com/ms/applet/AppletPanel.run (AppletPanel.java)
    at java/lang/Thread.run (Thread.java
    Can someone help solve this problem.
    Thansk in advance,
    Nirmal R.

    The point where the failure occurs in in the initialization of the transaction framework, so I would guess that you do not have the plug-in for the applet.
    Nirmal R wrote:
    Weblogic 5.1 is running on my localhost and a remote object successfully registered on the weblogic. There is an applet trying to establish a connection and after the client is registered in the client list I get the following exception
    Thu Jan 25 11:29:06 PST 2001:<E> <ServletContext-General> Servlet failed with Ex
    ception
    java.net.SocketException: Connection aborted by peer: socket write error
    at java.net.SocketOutputStream.socketWrite(Native Method)
    at java.net.SocketOutputStream.write(SocketOutputStream.java:83)
    at weblogic.servlet.internal.ChunkUtils.writeChunks(ChunkUtils.java:88)
    at weblogic.servlet.internal.ServletOutputStreamImpl.flush(ServletOutput
    StreamImpl.java:121)
    at weblogic.servlet.internal.ServletOutputStreamImpl.writeStream(Servlet
    OutputStreamImpl.java:444)
    at weblogic.servlet.ClasspathServlet.sendResource(ClasspathServlet.java:
    114)
    at weblogic.servlet.ClasspathServlet.doGet(ClasspathServlet.java:87)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
    pl.java:105)
    at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletCon
    textImpl.java:742)
    at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletCon
    textImpl.java:686)
    at weblogic.servlet.internal.ServletContextManager.invokeServlet(Servlet
    ContextManager.java:247)
    at weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.jav
    a:361)
    at weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:261)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
    And the java console shows this message:
    java.lang.NoClassDefFoundError
    at weblogic/rmi/extensions/BasicRequest.init (BasicRequest.java)
    at weblogic/rmi/extensions/BasicRequest.<init> (BasicRequest.java:18)
    at weblogic/rmi/extensions/AbstractRemoteObjectReference.getRequest (AbstractRemoteObjectReference.java:71)
    at weblogic/jndi/internal/RemoteContextFactoryImpl_WLStub.getContext (RemoteContextFactoryImpl_WLStub.java:77)
    at weblogic/jndi/WLInitialContextFactoryDelegate.newRemoteContext (WLInitialContextFactoryDelegate.java:316)
    at weblogic/jndi/WLInitialContextFactoryDelegate.newContext (WLInitialContextFactoryDelegate.java:242)
    at weblogic/jndi/WLInitialContextFactoryDelegate.getInitialContext (WLInitialContextFactoryDelegate.java:205)
    at weblogic/jndi/Environment.getContext (Environment.java:122)
    at weblogic/jndi/Environment.getInitialContext (Environment.java:105)
    at weblogic/rmi/Naming.getContext (Naming.java:225)
    at weblogic/rmi/Naming.lookup (Naming.java:67)
    at AppletTest.init (AppletTest.java:30)
    at com/ms/applet/AppletPanel.securedCall0 (AppletPanel.java)
    at com/ms/applet/AppletPanel.securedCall (AppletPanel.java)
    at com/ms/applet/AppletPanel.processSentEvent (AppletPanel.java)
    at com/ms/applet/AppletPanel.processSentEvent (AppletPanel.java)
    at com/ms/applet/AppletPanel.run (AppletPanel.java)
    at java/lang/Thread.run (Thread.java
    Can someone help solve this problem.
    Thansk in advance,
    Nirmal R.

  • "endpoint" encountered a socket write error.

    Blazesds: 3.0.0.544
    Flex:flex sdk 3
    Sever-side: 1. managing the accepted MessageClient.
    2. broadcasting the received message to every client.
    3. all the communication via streaming channel.
    After several about 20 clients connected to the server, a warning message popped out.
    'Endpoint with id'my-streaming-amf' is closing the streaming connection to FlexClient with id'xxxx' because endpoint encountered a socket write error, possibly due to an unreponsive FlexClient.
    Actually, nobody closed the client.
    My question is when the session was destroyed.
    a. no session timeout, caused the channel was lasted for about 2 seconds before it was interrupted.
    b. all the test was done in the inner network(LAN).
    c. this issue can be reproduced all the time.

    This is the warning that is at a point being given:
    Endpoint with id 'xxx-streaming-amf' is closing the streaming connection to FlexClient with id '3CFBFCA1-DC1D-FEDF-A70D-A08A520892CF' because endpoint encountered a socket write error, possibly due to an unresponsive FlexClient.
    Tried debugging things, but it seems as certain clients fail to completely subscribe to messages from the server and the Login remote call also seems to never even get to the server. Because of this, the loading dialog that is displayed during the authentication process, never gets removed ( since no reseponse from the server ever comes back ). This is really frustrating and there is no information anywhere that could shed some light on this problem.

  • Support of multiple GUI clients

    Hi,
    Currently, we have an application which partially supports multiple
    GUI clients. When a GUI first launches, it will pop up a dialog box
    to select "Read" or "Read/Write" access mode. Once "Read/Write"
    is selected, others can only select "Read" mode until "Read/Write" mode is released. There is a timer to automatically release the mode, if "Read/Write" is holding up for too long.
    Now., we have to fully support multiple clients. The "Read" and "Read/
    Write" modes have to be removed. That means, mutliple clients can
    send update requests at the same time. Does anyone have ideas how
    to support multiple clients? Is there any "models" out there where
    I can based on to support it?
    Thanks,
    Pin

    Mark, we came out with 8.1.7.4.0 precisely for the reasons you have stated. There is no longer a Windows NT Oracle Service For MTS per database. The logic to enlist Oracle connections in MTS transactions, and the logic to subsequently commit/abort these transactions is fully contained within the middle-tier dlls i.e. ORAMTS.DLL. This removes the single point-of-failure in pre 8.1.7.4.0 versions, and also makes the solution more scalable.

  • Socket write error - WL4.5.1

    Hi
    I have multiple clients accessing EJBs deployed on WebLogic4.5.1
    When I run the clients concurrently, the server throws the following
    exception and closes the client connection. This occurs with ServicePacks 7
    and 9!!! Can you please help me?
    Regards,
    Madhavi.
    The exception -
    Tue Nov 07 10:33:04 MST 2000:<E> <RJVM> java.net.SocketException: blocking
    winsock call in progress: socket write error
    at java.net.SocketOutputStream.socketWrite(Native Method)
    at java.net.SocketOutputStream.write(Compiled Code)
    at weblogic.socket.MBuf.writeTo(Compiled Code)
    at weblogic.socket.JVMSocketT3.sendMsg(Compiled Code)
    at weblogic.rjvm.ConnectionManager.sendMsg(Compiled Code)
    at weblogic.rjvm.SlidingWindow.sendMsg(Compiled Code)
    at weblogic.rjvm.RJVMImpl.send(Compiled Code)
    at weblogic.rjvm.RJVMImpl$OutStream.flushAndSendRaw(Compiled Code)
    at weblogic.rjvm.RJVMImpl$OutStream.flushAndSend(Compiled Code)
    at weblogic.rjvm.RJVMImpl$OutStream.sendOneWay(RJVMImpl.java:887)
    at
    weblogic.rmi.extensions.AbstractRemoteObjectReference$BasicOutgoingRequest.s
    endOneWay(AbstractRemoteObjectReference.java:335)
    at weblogic.rmi.extensions.BasicRequest.sendOneWay(BasicRequest.java:36)
    at
    weblogic.rmi.internal.DGCServer_WLStub.renewLease(DGCServer_WLStub.java:121)
    at weblogic.rmi.internal.DGCClientImpl$HeartBeat.execute(Compiled Code)
    at weblogic.t3.srvr.ExecuteThread.run(Compiled Code)

    YEAHHH
    God bless these forums !!! thats been bugging me for ages - youve no idea , so my code that works now looks like :
    public class SSLSocketClient {
    public static void main(String[] args) throws Exception {
    System.setProperty
    ("javax.net.ssl.trustStorePassword", "Passw0rd");
    System.setProperty ("javax.net.ssl.trustStore", "trust.store");
    Security.addProvider((Provider)Class.forName
    ("com.sun.crypto.provider.SunJCE").newInstance());
    java.security.Security.addProvider
    (new com.sun.net.ssl.internal.ssl.Provider());
    System.setProperty ("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol");
         try {
    System.setProperty
    ("javax.net.ssl.keyStoreType", "pkcs12");
    System.setProperty
    ("javax.net.ssl.keyStorePassword", "Passw0rd");
    System.setProperty
    ("javax.net.ssl.keyStore", "b2b_ssltestweb.p12");
         SSLSocketFactory factory =
              (SSLSocketFactory)SSLSocketFactory.getDefault();
         SSLSocket socket =
              (SSLSocket)factory.createSocket("b2b-dev.fmr.com", 443);
    /* now handshare is complete and god to go */
    Thanks for your help ejp,
    joe

  • GUI Client for Oracle 8.1.5 on R.H. Linux!

    Hello all,
    I have had Oracle 8.1.5 on my Red hat Linux 6.2 server for a while now. Everything works great but I would like to know if this version of Oracle comes with a GUI client that will allow me to view tables, make changes, drop tables and such through (basically a GUI administrative tool) GUI interface as opposed to the regular command line I have been using.
    If there isnt one, anyone know of a free third party software that will enable me do these tasks with a GUI client.
    Thanks, All!

    I have such a thing it is called Orasoft.
    It is some kind of GPL software that is easy to compile and works like a charm (make sure you have enough ram).
    I don't know where I got it but I'm sure you can find it it in a search engine.

  • Cannot connect a Java GUI client to an EJB

    I am having problems trying to make a Java GUI client connect to an EJB. I am using JRun4.
    At first, I tried making the Java GUI client a part of the enterprise application that I am building (of which the EJB is a part of). I included the client as a Java module in the application.xml of the enterprise application.
    However, when I try to start the server, containing this application, I get an error saying:
    Application authentication required. Incorrect method call.
    Now when I try to execute the application from the console, it works fine except when it comes to the part when it has to connect to the EJB. At this point I get an java.lang.reflect.UndeclaredThrowableException. Here's the stack trace:
    java.lang.reflect.UndeclaredThrowableException
    at $Proxy1.create(Unknown Source)
    at mds.Caller.actionPerformed(Caller.java:135)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
    Caused by: jrun.ejb.invocation.ContainerNotFoundException: The EJB container for boss-ejb#Boss could not be found.
    at jrun.ejb.invocation.AbstractInvocationProxy.findContainer(AbstractInvocationProxy.java:58)
    at jrun.ejb.invocation.LocalInvocationProxyImpl.invoke(LocalInvocationProxyImpl.java:53)
    at jrun.ejb.invocation.ClientInvocationHandlerImpl.invoke(ClientInvocationHandlerImpl.java:198)
    ... 25 more
    Since the bean is local, I am using a local reference to the bean in the lookup in the code of the client:
    Object o = context.lookup("local/BeanTest")
    I tried to use:
    Object o = context.lookup("java:comp/env/ejb/BeanTest")
    and added an ejb-local-ref in the application-client.xml file of the client. But when I try executing the client in this case, I get an error saying:
    No such binding: ejb
    I wish someone can help me out with this. My main aim is to get the app client talk to the EJB. Thanks a lot in advance.
    Soham

    I am not sure of a tool to view the JNDI tree. I have one in Weblogic console. But you can check the JNDI names with a small sample code.
    import java.util.*;
    import javax.naming.*;
    import javax.rmi.PortableRemoteObject;
    public class TestEnvironment {
        public static void main(String[] args) {
            Context context   = null;
            Object object     = null;
            // Hashtable for environment properties.
            Hashtable env = new Hashtable();
            env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
            env.put(Context.PROVIDER_URL, "t3://localhost:7001");
            try {
                context   = new InitialContext(env);
                NamingEnumeration enum = context.listBindings("");
                while (enum.hasMore()) {
                    Binding binding = (Binding) enum.next();
                    System.out.println("Name: " + binding.getName());
                    System.out.println("Type: " + binding.getClassName());
                    System.out.println("Value: " + binding.getObject());
            } catch (Exception exception) {
                exception.printStackTrace();
    }Hope this helps.

  • Seeburger sFTP receiver adapter error: Socket Write Error, EOF Received

    Hello experts,
    We have a sFTP to sFTP scenario for which we are getting below error every time the scenario is executed.
    Error Messages are as follows:
    Put File: Could not connect to remote host, Reason: Unexpected termination; software caused connection abort; socket write error[unknown cause].
    Sometimes below error occurs :
    Put File: Could not connect to remote host, Reason: EOF received from remote side [unknown cause].
    Every time after restart of sFTP adapter on XI box, failed messages are sent successfully to receiver sFTP server.
    There is no error for sender sFTP channel. This error occurs only for the receiver sFTP channel.
    On receiver sFTP side, we are using Public key-private key authentication.
    Can anyone please let me know what could be the cause of connection failure. ?
    Thanks a lot in advance!
    (I searched many threads on SDN but could not find anything relevant to this particular situation, so posting a separate question.)
    Minal

    Thanks Naveen for the reply..
    I missed to mention that we are working on XI3.0 with SP19 and seeburger sFTP is 1.7.4
    Looks like key exchange is working properly as after every restart of adapter all failed messages are processed successfully..
    It is observed that if there is an idle time of 8-10 hours between last data transfer and current data transfer then this error occurs.
    We have increased connection timeout and transmission timeout parameters also for sFTP properties in visual admin.
    Thanks,
    Minal
    Edited by: Minal Vaidya on Oct 5, 2011 8:46 AM

  • Urgent helep: socket write error

              Hi All,
              My application is continuously writing the following error message to the domain
              log of WLS eventhough app is running ok
              javax.servlet.ServletException: Connection aborted by peer: socket write error
                   <<no stack trace available>>
              My major concern is that,it will fill up the heap soon.
              Did anybody run into similar issue?
              Thanks in advance.
              RC
              

    Please do not cross-port.
              RC wrote:
              > Hi All,
              > My application is continuously writing the following error message to the domain
              > log of WLS eventhough app is running ok
              >
              > javax.servlet.ServletException: Connection aborted by peer: socket write error
              > <<no stack trace available>>
              >
              > My major concern is that,it will fill up the heap soon.
              > Did anybody run into similar issue?
              > Thanks in advance.
              >
              > RC
              Rajesh Mirchandani
              Developer Relations Engineer
              BEA Support
              

  • Socket write error

    Java.net.SocketException; connection reset by peer. socket write error
    Java.SQLException; cannot open anymore tables.
    I am getting this error when i'm using Tomcat 3.3 server. I am using servlet classes and access database.This error comes in 1-2 days and then it shows an sql exception that it cannot open any more tables. I am using an access database thru an ODBC datasource.
    The problem is solved when tomcat is restarted.
    If anybody knows the solution pl.let me know, anita

    Thanks 4 ur response. I am connecting to the database through JDBC which in turn uses an ODBC data source. The connection has been declared as global and is thus supposed to exist till the servlet is not destroyed.
    We r using an access D/B which is inturn accessed through ODBC.
    So it is not restarted or disturbed.
    Pl. help

Maybe you are looking for