Enforce console is not loading, and Enforce Tomcat logs contain "TNS-04610: No literals left, reached end of NV pair" errors
search cancel

Enforce console is not loading, and Enforce Tomcat logs contain "TNS-04610: No literals left, reached end of NV pair" errors

book

Article ID: 184655

calendar_today

Updated On:

Products

Data Loss Prevention Enforce

Issue/Introduction

Enforce console is not loading, and in the Tomcat (localhost) logs from Enforce you can see the following errors:

SEVERE [org.apache.ojb.broker.accesslayer.JdbcAccessImpl] PersistenceBrokerException during the execution of the query: Used ConnectionManager instance could not obtain a connection

Cause:

org.apache.ojb.broker.PersistenceBrokerException: Used ConnectionManager instance could not obtain a connection

org.apache.ojb.broker.accesslayer.LookupException: Could not get connection from DBCP DataSource

java.sql.SQLRecoverableException: IO Error: NL Exception was generated TNS-04610: No literals left, reached end of NV pair

oracle.net.ns.NetException: NL Exception was generated TNS-04610: No literals left, reached end of NV pair

(...)

Caused by: org.apache.ojb.broker.accesslayer.LookupException: Could not get connection from DBCP DataSource

    at org.apache.ojb.broker.accesslayer.ConnectionFactoryDBCPImpl.checkOutJdbcConnection(ConnectionFactoryDBCPImpl.java:86)

    at org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.lookupConnection(ConnectionFactoryAbstractImpl.java:139)

    at org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.getConnection(ConnectionManagerImpl.java:121)

    at org.apache.ojb.broker.accesslayer.StatementManager.getPreparedStatement(StatementManager.java:609)

    ... 70 more

Caused by: java.sql.SQLRecoverableException: IO Error: NL Exception was generated TNS-04610: No literals left, reached end of NV pair

    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:743)

    at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:666)

    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)

Cause

This is usually caused by an issue either with the oracle-thin connection string in the jdbc.properties configuration file, or with the tnsnames.ora alias configuration file. Any of these will result in DLP not being able to connect to the Oracle database, which in turn will prevent Manager from starting and the console from loading.

Resolution

Review jdbc.properties and tnsnames.ora to ensure that they are using the proper connection strings and alias definitions.

You can verify a connection string from jdbc.properties by trying to connect to the DB with sqlplus using the connection string:

sqlplus /nolog

conn username@connectionstring

Replace username and connectionstring with the DLP schema owner username and the connection string taken from jdbc.properties. Based on the outcome, verify what string should be present in jdbc.properties for the connection to work.

You can also look through logs of other services - i.e. IncidentPersister - for these entries:

[com.vontu.model.ojb.OJBSystem.start] Opened database: oracle-thin; JDBC connection URL:

The URL shown in the logs will tell you what connection string is DLP trying to connect to - verify whether it's not corrupted/truncated, that it uses the proper hostname and database service name/SID, etc.