Reading from socket inputstream returns -1

I'm using a socket in order to connect to a chat server. The code is:
Socket socket;
InputStreamReader isr;
OutputStreamWriter osw;
try {
  socket = new Socket(sHost, iPort);
  isr = new InputStreamReader(socket.getInputStream());
  osw = new OutputStreamWriter(socket.getOutputStream());
  int iCharRead;
  char[] buffer = new char[512];
  while((iCharRead=isr.read(buffer, 0, 512))!=-1) {
      // do something
  System.err.println("Error: InputStream has returned -1.");
  System.err.println("\tsocket.isBound()=" + socket.isBound());
  System.err.println("\tsocket.isClosed()=" + socket.isClosed());
  System.err.println("\tsocket.isConnected()=" + socket.isConnected());
  System.err.println("\tsocket.isInputShutdown()=" + socket.isInputShutdown());
  System.err.println("\tsocket.isOutputShutdown()=" + socket.isOutputShutdown());
} catch (Exception e) {
  e.printStackTrace();
} finally {
  try {if (isr!=null) isr.close();} catch (Exception ex) {}
  try {if (osw!=null) osw.close();} catch (Exception ex) {}
  try {if (socket!=null) socket.close();} catch (Exception ex) {}
}Ther server is supposed to be sending data continuously but sometimes, after being connected successfully for a while, the read method returns -1. As you can see in the previous code then I'm checking out some socket information and I get:
Error: InputStream has returned -1.
     socket.isBound()=true
     socket.isClosed()=false
     socket.isConnected()=true
     socket.isInputShutdown()=false
     socket.isOutputShutdown()=falseThe socket seems to be bounded, it is not closed and isConnected also returns true. Besides, input and output streams are not closed. So, why does the read method return -1? What does it really mean? Is it a problem in the server side, that is overloaded or simply malfunctioning? What can I do in order to keep on reading data from the socket connection? Do I have to close the current socket and reconnect again to the server or is there any other way to recover from this situation?
Thanks.

isConnected means was ever connected.
Check whether isr is closed. If so, the server has disconnected/closed the connection.

Similar Messages

  • MDEX intermittantly not returning response, getting com.endeca.navigation.ENEConnectionException: Error reading from socket connection buffer.Connection reset

    Intermittant issue where certain portlets have the spinning wheel and error getting thrown in the log, and resulting in stuck threads, has anyone seen this?
    Caused by: com.endeca.navigation.ENEConnectionException: Error reading from socket connection buffer.Connection reset
            at com.endeca.navigation.OptiInputBuffer.read(Unknown Source)
            at com.endeca.navigation.OptiInputBuffer.readFully(Unknown Source)
            at com.endeca.navigation.OptiInputBuffer.readUInt(Unknown Source)
            at com.endeca.navigation.OptiInputBuffer.readLine(Unknown Source)
            at com.endeca.navigation.OptiBinaryInterp.FormatCat(Unknown Source)
            at com.endeca.navigation.OptiBinaryInterp.FormatCatsWithAncs(Unknown Source)
            at com.endeca.navigation.OptiBinaryInterp.FormatCatGroup(Unknown Source)
            at com.endeca.navigation.OptiBinaryInterp.FormatBin(Unknown Source)
            at com.endeca.navigation.OptiBinaryInterp.FormatBinList(Unknown Source)
            at com.endeca.navigation.OptiBinaryInterp.ParseBinaryNode(Unknown Source)
            at com.endeca.navigation.OptiBackend.getNavigation(Unknown Source)
            at com.endeca.navigation.HttpENEConnection.query(Unknown Source)
            at com.endeca.portal.mdex.MDEXUtil.execute(MDEXUtil.java:433)
            at com.endeca.portal.data.DataSource.execute(DataSource.java:546)

    Message appears in logs internmittantly during page rendering which has Breadcrumbs, Results Table, Guided Navigation portlets.  There are Agraphs in front of several Dgraphs.

  • SocketException thrown when reading from socket.

    I got a thread that listen on a socket for data with: while (LISTENING)
    new AAAcknowledgeThread(serverSocket.accept()).start();
    When the thread mentioned executes and tries to read from the socket with:
    BufferedReader in = new BufferedReader(
    new InputStreamReader(socket.getInputStream()));
    A SocketException is thrown with the following stacktrace:
    java.net.SocketException: Connection reset by peer: JVM_recv in socket input stream read
    at java.net.SocketInputStream.socketRead(Native Method)
    at java.net.SocketInputStream.read(Unknown Source)
    at java.net.SocketInputStream.read(Unknown Source)
    at java.io.InputStreamReader.fill(Unknown Source)
    at java.io.InputStreamReader.read(Unknown Source)
    at java.io.BufferedReader.fill(Unknown Source)
    at java.io.BufferedReader.readLine(Unknown Source)
    at java.io.BufferedReader.readLine(Unknown Source)
    at se.ericsson.era.psem.jms.plugins.AAServerSimulatorThread.run(AAServerSimulatorThread.java:67)
    Does anybody know what could cause my problem?

    If you are creating the Socket in another Thread then I don't think the thread you create can read from that InputStream/OutputStream. I remember doing something like this while transfering files through RMI. I was openning a File and passing the FileOutputStream to another thread that pulled the file through RMI. That thread couldn't write to the outputstream, and would throw an exception. When I let the thread open it up. It worked.
    charlie

  • Couldn't read from socket error: Is this a bug in Java?

    I have been facing this grave problem for a long time now. After establishing a socket connection with some server:port say 207.123.17.20:1865, I get this error "Couldn't read from socket" as an IOException. I can neither read or send any packets to the server after receiving this error. On checking whether the socket connection is alive or not, I print socket.getAddress() and it returns me the ip of the server to which it is connected. The specification says that receiving this error means the socket was closed by the server. If it so then how I am able to print the server address after receiving this error? How can I get around this problem? Plz. help...

    watertownjordan said:
    If your computer (client) killed the connection, it should throw an error >pointing to the OS closing the connection. but what if my client app cntrl alt del while the server is waiting to here from the client.
    my client may sit idle for hours and then contact again. i want to keep their socket connected but if they cntrl alt del then i want to close the socket so the thread on the server side can be exited.
    the way i solved this was to send an "i'm still here" message to the serv in a timer every 10 seconds and set the time out on the server side to 30 seconds.
    i used a syncronized boolean variable like so:
        volatile private boolean out1busy = false;
        private synchronized boolean getOut1busy(){
         return out1busy;
        private synchronized void setOut1busy(boolean on){
         out1busy = on;
        }then in the timer i do this
            while (getOut1busy()) try { Thread.sleep(40); } catch (InterruptedException ex) {}
            setOut1busy(true);
            lobbyOut.println("-1");
            setOut1busy(false);it seems to work fine but the loop using the thread.sleep does not seem right and i know very little about this all.
    i'm basically asking the same thing as Chintan.Kanal
    Is there any way I can test whether the socket connection is alive from the server side?
    does my approach above have flaws.
    again it seems to work but i am not very Java savy lol.

  • SQL error 17410 No more data to read from socket

    Hi, I may have reached some stability limit of my JDBC thin driver, DB version and
    the complexity of my use cases??
    DB= 9.0.1.0
    Jev/OC4J = 9.0.2
    So this includes the JDBC thin driver included that looks like version; 9.0.2.7.99
    It made no sense but changing a dynamic where clause being set onto a View over an Entity
    like; vo.setWhereClause("myid = "+theID+" and someFk ="+theFkId);
    To a dynamic where clause with bind params for efficiency:
    vo.setWhereClause("myid = :1 and someFk = :2");
    vo.setWhereClauseParam(0, theId);
    vo.setWhereClauseParam(1, theFkId);
    I checked that my bind variables are same data type as what's declared in the Entity.
    This intermitantly causes:
    JBO-26066, which is a wrapper over SQLException 17410 No more data from socket
    Deep into the stack trace are unmarshalUB1(MARengine.java) ...
    leading me to believe this isn't my code but a bug/stress issue with the driver.
    Any thoughts?
    curt

    Steve et al,
    I'd like to re-ask does it make sense what I've done?
    A standard VO over an Entity with no where clause.
    vo.setWhereClause ("myId = :1 and myTypeCd = :2");
    vo.setWhereClauseParam(0, "123")
    vo.setWhereClauseParam(1, new Integer("1"));
    If this makes sense and should work, then I'd like to debug why for me it throws this No more data to
    read from socket error..
    Nothing obvious turns up in the BugDB for this related to bind variables and JDBC based on what you've described so far. An unscientific test would be to download the latest 9.2 JDBC driver and try that to see if the problem persists.I downloaded the latest 9.2 -g debug drivers and got this interesting trace:
    DRVR OPER OracleConnection.getDefaultFixedString() returning false
    DRVR OPER ResultSetUtil.needIdentifier(typeCode=1): return: false
    DRVR SQLS Input SQL:  "SELECT JotfObligationsSum.UNO#,         JotfObligationsSum.OBLIGATION_BALANCE,          JotfObligationsSum.OBLIGATION_TYPE_CD,         JotfObligationsSum.ENTERED_DT,          JotfObligationsSum.RECORD_VERSION,         JotfObligationsSum.ENTERED_BY,          JotfObligationsSum.ROWID FROM JOTF_OBLIGATIONS_SUM JotfObligationsSum WHERE (JotfObligationsSum.Uno# = '1000270' and JotfObligationsSum.Obligation_Type_Cd=1)"
          pStmt = conn.prepareStatement("SELECT JotfObligationsSum.UNO#,         JotfObligationsSum.OBLIGATION_BALANCE,          JotfObligationsSum.OBLIGATION_TYPE_CD,         JotfObligationsSum.ENTERED_DT,          JotfObligationsSum.RECORD_VERSION,         JotfObligationsSum.ENTERED_BY,          JotfObligationsSum.ROWID FROM JOTF_OBLIGATIONS_SUM JotfObligationsSum WHERE (JotfObligationsSum.Uno# = '1000270' and JotfObligationsSum.Obligation_Type_Cd=1)");  // JBO-JDBC-INTERACT
    [803] (30) DRVR OPER OracleStatement.setFetchSize(rows=1)
    Binding param 1: 1000270
    [804] (0) DRVR OPER OraclePreparedStatement.setObject(paramIndex=1, object)
    DRVR OPER OraclePreparedStatement.setObject(paramIndex=1, object, targetSqlType=12, scale=0)
    DRVR OPER OraclePreparedStatement.setString(paramIndex=1, x=1000270)
    Binding param 2: 1
    [805] (0) DRVR OPER OraclePreparedStatement.setObject(paramIndex=2, object)
    DRVR OPER OraclePreparedStatement.setObject(paramIndex=2, object, targetSqlType=4, scale=0)
    DRVR OPER OraclePreparedStatement.setInt(paramIndex=2, x=1)
    DRVR WARN DBError.findMessage(errNum, obj): returned No max length specified in defineColumnType
    SQLWarning: reason(Warning: No max length specified in defineColumnType) SQLstate(null) vendor code(17108)
    DRVR OPER OraclePreparedStatement.executeQuery()
    DRVR OPER OraclePreparedStatement.executeUpdate()
    DRVR OPER OracleConnection.getAutoCommit() returned false
    DRVR WARN DBError.findMessage(errNum, obj): returned No more data to read from socket
    SQLException: SQLState(null) vendor code(17410)
    java.sql.SQLException: No more data to read from socketNotice that the first Select DRVR log shows the bind params already substituted?
    what's the issue of no defined max length? That column is a Number(5) and the bind param is being
    set from an Integer.
    For the duplicate class issue, try searching the *.jpr file to see if somehow you have duplicate entries in there for the class it's complaining about. LOL, this is a good one. The first line in generated *Impl.java files is the package declaration.  If
    you bring up a java file and accidentally remove the first line, you'll get this odd error message.
    Duplicate class found for abc.class
    Thanks, curt

  • No more data to read from socket UTF instance problem

    I'm using oracle jdbc thin driver and SunOne Application Server 7 environment.
    I'm trying to call the stored procedure which has one IN parameter that is of type CLOB.
    My code looks like this:
    conn = DriverManager.getConnection (url, username, password);
    conn.setAutoCommit(false);
    clob = CLOB.createTemporary(conn, true, CLOB.DURATION_SESSION);
    Writer wr = clob.getCharacterOutputStream();
    wr.write(m_data);
    wr.flush();
    wr.close();
         PreparedStatement pstmt = conn.prepareCall(procedureCall);
    pstmt.setClob(1, clob);
         pstmt.execute();
    but when I run it, it throws this (at wr.write(m_data) statement):
    [29/Jan/2003:15:07:25] WARNING ( 9340): CORE3283: stderr: java.io.IOException: No more data to read from socket
    [29/Jan/2003:15:07:25] WARNING ( 9340): CORE3283: stderr: at oracle.jdbc.dbaccess.DBError.SQLToIOException(DBError.java:716)
    [29/Jan/2003:15:07:25] WARNING ( 9340): CORE3283: stderr: at oracle.jdbc.driver.OracleClobWriter.flushBuffer(OracleClobWriter.java:270)
    [29/Jan/2003:15:07:25] WARNING ( 9340): CORE3283: stderr: at oracle.jdbc.driver.OracleClobWriter.write(OracleClobWriter.java:172)
    [29/Jan/2003:15:07:25] WARNING ( 9340): CORE3283: stderr: at java.io.Writer.write(Writer.java:150)
    [29/Jan/2003:15:07:25] WARNING ( 9340): CORE3283: stderr: at java.io.Writer.write(Writer.java:126)
    I tried using this instead of Writer:
    clob.putString(1, m_data);
    but the same error occurs.
    I then tried to do both of these:
    InputStream reader = new StringBufferInputStream(m_data);
    PreparedStatement pstmt = conn.prepareCall(procedureCall);
    pstmt.setUnicodeStream(1, reader, reader.available());
    Reader reader = new StringReader(m_data);
         PreparedStatement pstmt = conn.prepareCall(procedureCall);
    pstmt.setCharacterStream(1, reader, m_data.length());
    but in both cases I got this (at pstmt.setCharacterStream() or pstmt.setUnicodeStream()):
    [29/Jan/2003:16:06:00] WARNING ( 9340): CORE3283: stderr: java.sql.SQLException: Data size bigger than max size for this type: 76716
    [29/Jan/2003:16:06:00] WARNING ( 9340): CORE3283: stderr: at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
    [29/Jan/2003:16:06:00] WARNING ( 9340): CORE3283: stderr: at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
    [29/Jan/2003:16:06:00] WARNING ( 9340): CORE3283: stderr: at oracle.jdbc.ttc7.TTCItem.setArrayData(TTCItem.java:95)
    [29/Jan/2003:16:06:00] WARNING ( 9340): CORE3283: stderr: at oracle.jdbc.dbaccess.DBDataSetImpl.setBytesBindItem(DBDataSetImpl.java:2414)
    [29/Jan/2003:16:06:00] WARNING ( 9340): CORE3283: stderr: at oracle.jdbc.driver.OraclePreparedStatement.setItem(OraclePreparedStatement.java:1134)
    [29/Jan/2003:16:06:00] WARNING ( 9340): CORE3283: stderr: at oracle.jdbc.driver.OraclePreparedStatement.setUnicodeStream(OraclePreparedStatement.java:2633)
    But, the greatest mistery of all is that code with temporary CLOB works fine when I create instance and use default settings. Problem occurs when I create instance with UTF coding scheme. But we are forced to use Unicode coding scheme, because of local special characters.
    We are using Oracle 9i on Solaris UNIX platform and jdbc drivers supplied with it.
    The CLOB I am trying to pass is a XML file and it is possible to be up to 400 KB in size.
    Please help. I'm at my wit's end!

    Hi,
    I have a similar problem . This is the code that I used. Can u please help me
    oracle.sql.CLOB newClob = oracle.sql.CLOB.createTemporary(((org.apache.commons.dbcp.PoolableConnection) con).getDelegate() , true, oracle.sql.CLOB.DURATION_SESSION);
              newClob.open(oracle.sql.CLOB.MODE_READWRITE);
              Writer wr = newClob.getCharacterOutputStream();
              wr.write(valuesXml);
              wr.flush();
              wr.close();
              //newClob.putString(1,valuesXml);
              pst.setClob(1,newClob);
    These are the versions that I use
    java version is 1.4.2_06
    and it is a Liunx OS - gij (GNU libgcj) version 3.2.3 20030502 (Red Hat Linux 3.2.3-49)
    the Oracle version is 9.2.0.4.0
    The exception I see is
    java.io.IOException: No more data to read from socket
         at oracle.jdbc.dbaccess.DBError.SQLToIOException(DBError.java:716)
         at oracle.jdbc.driver.OracleClobWriter.flushBuffer(OracleClobWriter.java:270)
         at oracle.jdbc.driver.OracleClobWriter.flush(OracleClobWriter.java:204)

  • No more data to read from socket only in 2nd and 3rd database

    Hi,
    I'm developing an application for a client with three independent login modes, each one with an independent database.
    I'm using the following products:
    Oracle 9i database (9.2.0.6.0)
    Oracle Content Management SDK 10g (9.0.4.0.0)
    Oracle Workflow (2.6.3.0.0)
    Oracle Application Server 10g (9.0.4.2.0)
    In development, I've these products installed in x86 machines with Windows 2000. I've no problems and no errors.
    In the client, I've the same products and versions but installed in a Solaris Machine and I've the following error ONLY when I use the second and the third login modes (not always, maybe only in 50% of the times I submit data in the application). In the first login mode I have no problems. The code for the different modes is essentially the same so I don't understand what is the problem. I don't have access to the client server so I can't make a debug.
    The error is:
    Caused by: java.sql.SQLException: No more data to read from socket
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:189)
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:231)
         at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:985)
         at oracle.jdbc.ttc7.MAREngine.unmarshalUB1(MAREngine.java:746)
         at oracle.jdbc.ttc7.MAREngine.unmarshalSB1(MAREngine.java:705)
         at oracle.jdbc.ttc7.Oclose.receive(Oclose.java:105)
         at oracle.jdbc.ttc7.TTC7Protocol.close(TTC7Protocol.java:565)
         at oracle.jdbc.driver.OracleStatement.close(OracleStatement.java:848)
         at oracle.jdbc.driver.OraclePreparedStatement.privateClose(OraclePreparedStatement.java:351)
         at oracle.jdbc.driver.OraclePreparedStatement.close(OraclePreparedStatement.java:285)
         at oracle.jdbc.driver.OracleCallableStatement.close(OracleCallableStatement.java:876)
         at oracle.jdbc.oracore.OracleTypeADT.initMetadata(OracleTypeADT.java:579)
         at oracle.jdbc.oracore.OracleTypeADT.init(OracleTypeADT.java:406)
         at oracle.sql.ArrayDescriptor.initPickler(ArrayDescriptor.java:1023)
         at oracle.sql.ArrayDescriptor.<init>(ArrayDescriptor.java:137)
         at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:102)
    I'm using oracle jdbc thin driver.
    As data source class I'm using jdbc.pool.OracleConnectionCacheImpl.
    Anyone have a clue what is happening?

    Have you resolved this? I am getting the same error, but after restarting my webserver and re-establishing my connection pools it works(for a while). I need to find the root.
    Thanks for any help,
    Mark

  • "No more data to read from socket."?

    Hi everybody,
    We recently migrated from Oracle 10g Database Enterprise Edtion to Oracle 11g R2 Database Enterprise Edition
    with Data Guard and a dedicated standy-by database. The database is a data source for multiple applications.
    Among others, we are using two JBoss 4.2.3 GA application servers which run together in a clustered configuration.
    During our migration of our database, we also updated our OJDBC thin drivers from Oracle within our JBosses. We
    replaced the ojdbc14.jar with ojbc6.jar (Oracle 11g 11.1.0.7.0) and updated or added referenced libraries as well.
    Since our migration we experience an unfamiliar problem from time to time. Suddenly our deployed EJBs crash with
    the exception "SQLException: No more data to read from socket." The occurence is rather random than bound to
    a specific bean. The only noticeable thing is that it appears more often when there is more work load on our
    JBosses.
    Our only solution up to now is to shutdown our JBosses, restart the database and restart our JBosses again.
    Depending on our work load we do this from every two days to every 4 hours.
    I googled the message and even found several hundred hits that mentioned the exception above, but none of
    them got really solved, instead people found some case of work around for them. But none of them worked for us,
    since this exception seems more general and can have multiple causes.
    We did not have this problems when we were using the Oracle 10g database. Currently I am not sure if this problem
    is related to the new Oracle 11g R2 database, the new OJDBC thin driver or JBoss.
    Anybody experienced the same problem? And maybe even got it properly solved?
    If you need further information, just ask. I will happily offer as much information as possible to solve this.
    Greetings,
    CB
    Edited by: Crazy Bytes on 08.06.2010 03:10

    Hi,
    I remember that we received similar error after upgrading the database from 9.2.0.7 to 10.2.0.4 in one of our application using JDBC 10.1.0.5. We worked with Oracle support, and they provided us with patch Patch 5851267, that resolved our problem.
    So I would recommend you to do the same.
    regards

  • [solaris 8] Oracle 8.1.6 EE: no more data to read from socket

    Hi,
    I'm sorry for writing to this list, but it is the most related I could find.
    I installed Oracle 8.1.6 EE on a sparc 5 with solaris 8. I had to install the thread patches for solaris 8 because the emn0 process of oracle was dying every 30 minutes.
    After that, the DB seemed to work ok, but when running a heavy java process (jdbc),
    the process reports "java.sql.SQLException: No more data to read from socket".
    Have anyone experienced this kind of problem ?
    I decided to reinstall solaris 7... Could anyone help me ? comments ? suggestions ?
    Thanks in advance.
    Gabriel

    Reason: the ORACLE server process crashes (sometimes), and the result is the "empty"
    socket.

  • Error on ASA5505: "IKE Receiver: Error reading from socket."

    Hi,
    I'm expecting a problem with the network of a customer.
    He has one ASA5505 connected to 2 RV082 using VPN IPSec (1 top office and 2 remote sites).
    Each sites have 2 internet ADSL providers: "Provider A" and "Provider B" for backup purpose.
    The remote site 1 has the default connection using "Provider A" network on both sites (top office and remote site) and "Provider B" for backup purpose.
    While remote site 2 has the default connection using "Provider B" network on both sites (top office and remote site) and "Provider A" for backup purpose.
    (Kind of load balancing when all connections are working good)
    When all "3 sites x 2 =" 6 connections are working, I doesn't have any problem and all is working good.
    But since 2 weeks, the "Provider A" of the top office is disconnected: both remote site uses "Provider B" and are connected to the top office on
    the "Provider B" connection. ("Provider A" is no longer used on every sites.)
    This configuration works good until a short disconnection appear on "Provider B" connection on "Site 2".
    Then I have many "IKE Receiver: Error reading from socket." on the ASA5505 syslog and the RV082 located on "Site 2" says it's connect but it isn't. (It is not possible to ping "site 2" from top office network.)
    If I force this RV082 to reconnect, I can from the top office, ping "Site 2" and open a remote desktop session to the server located on "site 2".
    But I cannot ping top office network from "Site 2" and I cannot open a remote desktop session to the server located on "top office"
    (it's very strange I can ping from a A network to a B network but not from B to A).
    Restart the RV082 of the "Site 2" and/or the ASA5505 does not fix the problem and I continue to get the IKE socket error message.
    To fix the problem until next "Site 2" "Provider B" disconnection, I have to disconnect or restart the RV082 located on "Site 1" and then do the same to the RV082 located on "Site 2".
    I use updated firmware: RV0XX-v4.1.1.01-sp.bin for both RV082 v3 and asa843-9-k8.bin for the ASA5505.
    ASA routing part :
    # 192.168.1.0 is the network of the top office
    # 192.168.2.0 is the network of site 1
    # 192.168.3.0 is the network of site 2
    # 192.168.20.2 is the @IP of the "Provider A" internet router located on top office
    # 192.168.21.2 is the @IP of the "Provider B" internet router located on top office
    route outsideLB 0.0.0.0 0.0.0.0 192.168.20.2 128 track 1
    route outsideFB 192.168.3.0 255.255.255.0 192.168.21.2 128 track 2
    route outsideLB 192.168.2.0 255.255.255.0 192.168.20.2 128 track 3
    route outsideFB 0.0.0.0 0.0.0.0 192.168.21.2 150
    route outsideFB %Site2_ProviderB_PublicIP% 255.255.255.255 192.168.21.2 5
    route outsideLB %Site1_ProviderA_PublicIP% 255.255.255.255 192.168.20.2 5
    route outsideFB 192.168.2.0 255.255.255.0 192.168.21.2 150
    route outsideLB 192.168.3.0 255.255.255.0 192.168.20.2 150
    sla monitor 10
    type echo protocol ipIcmpEcho %ProvideA_IP_of_a_SMTP_Server% interface outsideLB
    frequency 5
    sla monitor schedule 10 life forever start-time now
    sla monitor 20
    type echo protocol ipIcmpEcho %Site2_ProviderB_PublicIP% interface outsideFB
    sla monitor schedule 20 life forever start-time now
    sla monitor 30
    type echo protocol ipIcmpEcho %Site1_ProviderA_PublicIP% interface outsideLB
    sla monitor schedule 30 life forever start-time now
    Thanks,
    David
    neithe

    isConnected means was ever connected.
    Check whether isr is closed. If so, the server has disconnected/closed the connection.

  • Error -no more data to read from socket vendor code 17410

    Hi everyone
    I have installed a gateway on my server. My oracle database 11.1.0.7 is running on windows server 2008 and i am trying to connect to sql server 2005.
    After creating the database link when i test the database link i get this error
    no more data to read from socket vendor code 17410
    can you please suggest me how to get rid of this error?????
    thanks a many

    enable gateway tracing by setting HS_FDS_TRCE_LEVEL=255 in your DG4MSQL configuration file. Then open a new SQL*Plus window and execute:
    select user from dual@<dg4msql db link>;
    A trace file is generated in the ORACLE_HOME/dg4msql/trace directory. Post its content.

  • Java.sql.SQLException: No more data to read from socket

    Hello,
    we're now facing some strange problem which is probably caused by some malfunctioned connections being present in connection pool. The MGP process is failing for some clients with following error message. During the MGP process, some users are processed without any problems and some encounter this exception. I tried to restart the DB and both OL servers (we have 2 OL servers, on one of them is running MGP), but it didn't help.
    Some time before I restarted the servers, we were also occasionally facing "Server connections exceeded" error message, but I don't think this is relevant...
    We're using 10gR2 OL servers and 10gR2 RDBMS.
    Any ideas what could be wrong?
    <pre>
    Applied Record     Counts:
    Insert Count     = 0
    Update Count     = 0
    Delete Count     = 0
    Composed PubItems
    (<PubItem Name>, <Duration     in Milli Seconds>):
    JPOCZ_C$ALL_CLIENTS,16
    JPOCZ_PA_STATESTOCKSUM,1484
    JPOCZ_PA_MEMOS,31
    JPOCZ_TASKMOTYPES,47
    JPOCZ_PA_VISITDETAILS,16
    JPOCZ_PA_STATESTOCK,859
    JPOCZ_DISTRIBS,47
    JPOCZ_ITEMPRICING,438
    Compose Error:
    java.sql.SQLException: No more data to read from socket
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:189)
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:231)
         at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:985)
         at oracle.jdbc.ttc7.MAREngine.unmarshalUB1(MAREngine.java:746)
         at oracle.jdbc.ttc7.MAREngine.unmarshalSB1(MAREngine.java:705)
         at oracle.jdbc.ttc7.Ocommoncall.receive(Ocommoncall.java:108)
         at oracle.jdbc.ttc7.TTC7Protocol.rollback(TTC7Protocol.java:427)
         at oracle.jdbc.driver.OracleConnection.rollback(OracleConnection.java:1410)
         at oracle.lite.sync.JupConnection.rollback(Unknown Source)
         at oracle.lite.sync.MGP$MGPG.run(Unknown Source)
         at java.lang.Thread.run(Unknown Source)
    </pre>

    I'm not using localhost, but the host name. We just today notified some other network problems on this server and discovered there're 2 network cards - one of them which wasn't connected was configured for DHCP and the other one was configured properly with fixed IP address. We disabled the disconnected network card and it looks like the problems with other applications is solved so we'll se if the Mobile Server is also cured...

  • "No more data to read from socket" exception when testing connections

    Hi,
    I will appriciate your help with the following problem.
    We have the follwoing errors in the weblogic.log (We are using weblogic 8.1.0.2 and Oracle 9.2.0.3)
    ####<Dec 20, 2006 10:47:49 AM EET> <Info> <JDBC> <ep> <mfserver> <Thread-14> <<WLS Kernel>> <> <BEA-001128> <Connection for pool "oraclePool" closed.>
    ####<Dec 20, 2006 10:47:49 AM EET> <Info> <JDBC> <ep > <mfserver> <Thread-14> <<WLS Kernel>> <> <BEA-001067> <Connection for pool "oraclePool" refreshed.>
    ####<Dec 20, 2006 10:47:51 AM EET> <Error> <JDBC> <ep > <mfserver> <Thread-14> <<WLS Kernel>> <> <BEA-001112> <Test "select count(*) from DUAL" set up for pool "oraclePool" failed with exception: "java.sql.SQLException: No more data to read from socket".>
    ####<Dec 20, 2006 10:47:51 AM EET> <Error> <JDBC> <ep > <mfserver> <Thread-14> <<WLS Kernel>> <> <BEA-001131> <Received an exception when closing a cached statement for the pool "oraclePool": java.sql.SQLException: Io exception: Broken pipe.>
    These exception occures every hour after the connection pool is being closed and refreshed.
    Also there are a lot of the follwoing warnning in the log :
    <BEA-001074><A JDBC pool connection leak was detected.
    Does these two problems connected? What can we do in order to solve it?
    Thanks
    Edited by RF123 at 01/28/2007 3:41 AM

    R F wrote:
    Hi,
    I will appriciate your help with the following problem.
    We have the follwoing errors in the weblogic.log (We are using weblogic 8.1.0.2 and Oracle 9.2.0.3)
    ####<Dec 20, 2006 10:47:49 AM EET> <Info> <JDBC> <ep> <mfserver> <Thread-14> <<WLS Kernel>
    <> <BEA-001128> <Connection for pool "oraclePool" closed.>
    ####<Dec 20, 2006 10:47:49 AM EET> <Info> <JDBC> <ep > <mfserver> <Thread-14> <<WLS Kernel>
    <> <BEA-001067> <Connection for pool "oraclePool" refreshed.>
    ####<Dec 20, 2006 10:47:51 AM EET> <Error> <JDBC> <ep > <mfserver> <Thread-14> <<WLS Kernel>
    <> <BEA-001112> <Test "select count(*) from DUAL" set up for pool "oraclePool" failed with exception:
    "java.sql.SQLException: No more data to read from socket".>
    ####<Dec 20, 2006 10:47:51 AM EET> <Error> <JDBC> <ep > <mfserver> <Thread-14> <<WLS Kernel>
    <> <BEA-001131> <Received an exception when closing a cached statement for the pool "oraclePool":
    java.sql.SQLException: Io exception: Broken pipe.>
    These exception occures every hour after the connection pool is being closed and refreshed.
    Also there are a lot of the follwoing warnning in the log :
    <BEA-001074><A JDBC pool connection leak was detected.
    Does these two problems connected? What can we do in order to solve it?Hi. The problems are not directly related, but may have the same cause.
    Something is killing your DBMS connections out from under the driver.
    Do you have a firewall between WLS and the DBMS, or a flakey network?
    Contact BEA support to get the 8.1sp2 patch for getting meaningful
    connection leak traces (CR209251_81sp2.jar). When that patch is installed
    the leak messages should show a full stack trace of the application code
    where the connection was obtained. It is that application code that
    somehow failed to close the pool connection, causing a pool leak. I
    suspect that the application code got an unexpected exception, such as
    when/if the DBMS/network/firewall killed a connection. In this case I
    believe the application went through an exception-handling path that
    forgot to close the connection.
    Joe

  • SQLDeveloper tool script execution aborts with Error report: No more data to read from socket

    Hello,
    Strange behaviour of  the SQLdeveloper tool while executing script with typical DDLs like:
    Create Table,
    Alter Table
    Create Trigger ( use of :new and : old attributes in tehe body of trigger ).
    Insert Into....
    Scripts works ok from time to time.
    But sometimes coincidentally aborts with the error :
    Error report:
    No more data to read from socket
    Do not understand where is the problem.
    Scripts works ok when executed in SQL*Plus on server ( where Oracle RDBMS resides ).
    The version of SQLDeveloper is
    Version 3.2.20.09 Build MAIN-09.87
    The version of RDBMS is  11.2.0.2.0 .
    Thanx for any reference or direction or hint for upgrade or experience.
    Greetings,

    Welcome to the forum!
    Please provide the 4 digit Oracle version (result of SELECT * FROM V$VERSION) for the source and target servers; 10g and 11g are not versions. You also mention sql developer so what is the exact version you are using?
    >
    If delete the "OF out_a.ALLOCATION_ID" of the for update clause of CURSOR exist_allocation, this prolbem will not happen, and the code is comple succesfully on sql developer for oracle 10g.
    >
    Please clarify what works and what doesn't work because your statements are both incorrect and misleading.
    You can't delete the "OF out_a.ALLOCATION_ID" of the for update clause or you would get a syntax error by leaving FOR UPDATE OF with nothing specified after it.
    Also you original statement said
    >
    But when compile a package which is fine on oracle 10g
    >
    But now you say that if you delete the "OF..." the problem doesn't happen and the code compiles on 10g.
    Does the original code compile on 10g or not? Does it compile on 11g or not? After the original code is migrated to 11g does it compile? That is, the code is there can you manually compile it?

  • Error report:No more data to read from socket  when compile package

    We are going to migrate db from oracle 10g to oracle 11g. But when compile a package which is fine on oracle 10g, an exception "Error report:No more data to read from socket" throws on sql developer and break the connection. We have researched the issue and found if modify some code on a cursor, the issue will not happen.
    code:
    PROCEDURE DELETE_MANU_INTERV_BORROWS(
    p_borrow_id IN NUMBER,
    p_asset_id IN NUMBER,
    p_nsb_coll_type IN VARCHAR2,
    p_nsb_coll_code IN VARCHAR2,
    p_branch_code IN VARCHAR2,
    p_settle_date IN NUMBER,
    p_trans_type IN VARCHAR2,
    p_status OUT VARCHAR2,
    p_shorts_cursor OUT SYS_REFCURSOR
    IS
    var_end_settle_date GEC_IM_ORDER.SETTLE_DATE%type;
    CURSOR exist_allocation IS
    SELECT out_a.ALLOCATION_ID FROM
    GEC_ALLOCATION out_a,
    GEC_BORROW b,
    GEC_IM_ORDER o,
    GEC_TRADE_COUNTRY gc,
    (SELECT f.FUND_CD, f.BRANCH_CD, tc.TRADE_COUNTRY_CD, NVL(gc.COLLATERAL_CURRENCY_CD, gbk.COLLATERAL_CURRENCY_CD) as COLLATERAL_CURRENCY_CD
    FROM GEC_FUND f
    LEFT JOIN GEC_G1_BOOKING gbk ON f.fund_cd = gbk.fund_cd AND gbk.TRANSACTION_CD = 'G1L' AND gbk.POS_TYPE = 'NSB'
    LEFT JOIN GEC_G1_COLLATERAL gc ON gc.G1_BOOKING_ID = gbk.G1_BOOKING_ID
    LEFT JOIN GEC_TRADE_COUNTRY tc ON gc.TRADE_COUNTRY_CD = tc.TRADE_COUNTRY_CD
    ) loan_info
    WHERE b.BORROW_ID = out_a.BORROW_ID AND
    out_a.IM_ORDER_ID = o.IM_ORDER_ID AND
    o.FUND_CD = loan_info.FUND_CD AND
    o.ASSET_ID = p_asset_id AND
    gc.TRADE_COUNTRY_CD = o.TRADE_COUNTRY_CD AND
    o.TRANSACTION_CD = p_trans_type AND
    loan_info.COLLATERAL_CURRENCY_CD = p_nsb_coll_code AND
    loan_info.BRANCH_CD = p_branch_code AND
    o.SETTLE_DATE >= p_settle_date AND
    o.SETTLE_DATE <= var_end_settle_date AND
    b.STATUS = GEC_CONSTANTS_PKG.C_BORROW_MANUAL
    ORDER BY out_a.ALLOCATION_ID ASC
    FOR UPDATE OF out_a.ALLOCATION_ID;
    If delete the "OF out_a.ALLOCATION_ID" of the for update clause of CURSOR exist_allocation, this prolbem will not happen, and the code is comple succesfully on sql developer for oracle 10g.
    Does anybody have any idea? I've googled the similer problems but still can't find a clue. I'll appreciate any help.

    Welcome to the forum!
    Please provide the 4 digit Oracle version (result of SELECT * FROM V$VERSION) for the source and target servers; 10g and 11g are not versions. You also mention sql developer so what is the exact version you are using?
    >
    If delete the "OF out_a.ALLOCATION_ID" of the for update clause of CURSOR exist_allocation, this prolbem will not happen, and the code is comple succesfully on sql developer for oracle 10g.
    >
    Please clarify what works and what doesn't work because your statements are both incorrect and misleading.
    You can't delete the "OF out_a.ALLOCATION_ID" of the for update clause or you would get a syntax error by leaving FOR UPDATE OF with nothing specified after it.
    Also you original statement said
    >
    But when compile a package which is fine on oracle 10g
    >
    But now you say that if you delete the "OF..." the problem doesn't happen and the code compiles on 10g.
    Does the original code compile on 10g or not? Does it compile on 11g or not? After the original code is migrated to 11g does it compile? That is, the code is there can you manually compile it?

Maybe you are looking for