1 Reply Latest reply on May 31, 2016 3:30 PM by Steven Hawkins

    How to troubleshoot Teiid 20018 Errors?

    jay vyas Newbie

      Caused by: org.teiid.net.CommunicationException: TEIID20018 Unable to find a component used authenticate on to Teiid


      I have a teiid database that seems to work well with psql client queries, but jdbc queries lead to OOME exceptions on connection creation:



      // Note that mms is necessary for this dataset.
      Connection connection = DriverManager.getConnection("jdbc:teiid:public@mms://myvdb.engineering.xyz.com:31000", "blah", "abc");


      Fails with the message:



      SEVERE: Could not create connection

      org.teiid.jdbc.TeiidSQLException: TEIID20018 Unable to find a component used authenticate on to Teiid

              at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:135)

              at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:71)

              at org.teiid.jdbc.SocketProfile.connect(SocketProfile.java:66)

              at org.teiid.jdbc.TeiidDriver.connect(TeiidDriver.java:107)

              at org.teiid.jdbc.TeiidDriver.connect(TeiidDriver.java:55)

              at java.sql.DriverManager.getConnection(DriverManager.java:664)

              at java.sql.DriverManager.getConnection(DriverManager.java:247)

              at poc.TeiidInternalJDBC.main(TeiidInternalJDBC.java:37)

      Caused by: org.teiid.net.CommunicationException: TEIID20018 Unable to find a component used authenticate on to Teiid

              at org.teiid.net.socket.SocketServerConnection.selectServerInstance(SocketServerConnection.java:147)

              at org.teiid.net.socket.SocketServerConnection.<init>(SocketServerConnection.java:95)

              at org.teiid.net.socket.SocketServerConnectionFactory.getConnection(SocketServerConnectionFactory.java:316)

              at org.teiid.jdbc.SocketProfile.connect(SocketProfile.java:64)

              ... 5 more

      Caused by: org.teiid.core.TeiidComponentException: Java heap space

              at org.teiid.client.util.ExceptionUtil.convertException(ExceptionUtil.java:65)

              at org.teiid.net.socket.SocketServerInstanceImpl$RemoteInvocationHandler.invoke(SocketServerInstanceImpl.java:424)

              at com.sun.proxy.$Proxy0.logon(Unknown Source)

              at org.teiid.net.socket.SocketServerConnection.logon(SocketServerConnection.java:180)

              at org.teiid.net.socket.SocketServerConnection.selectServerInstance(SocketServerConnection.java:128)

              ... 8 more

      Caused by: java.lang.OutOfMemoryError: Java heap space


      I assume since its the SocketServerConnection failure, its happening server side ( i dont see client side memory exploding, either).

        • 1. Re: How to troubleshoot Teiid 20018 Errors?
          Steven Hawkins Master

          You would first check the server side log.  Once the server is in a bad state with OOME there is little guarantee on what clients will see as responses as these exceptions are considered fatal to the server.  The cause of an OOME can be a bit tricky to determine.  The most direct method is to capture a heap dump on out of memory and analyze the dump for what is holding references.  Memory consumption is influenced by the configuration (memory settings, active plans, etc.), the vm sizing, the query load (number of clients and the complexity of the query plans), and even what else is running in the container /the datasource pool resources.  On an appropriately sized vm with the default Teiid settings memory on a container that is dedicated to Teiid, you would not expect to see out of memory errors - so there isn't generally a single suggestion as to a fix.  If you have increased the size of your vm and are still experiencing out of memory errors it would certainly be good to post the particulars of your setup and/or the results of the heap dump analysis for next steps.