java.sql.SQLRecoverableException: IO Error: SO Exception was generated

 
To BottomTo Bottom

In this Document

  Symptoms
  Changes
  Cause
  Solution
  References

 

APPLIES TO:

Oracle Secure Enterprise Search - Version 11.2.2.2.0 and later
Information in this document applies to any platform.

SYMPTOMS

SES 11.2.2.2 got installed in mode #3.
Then, seeing the following error in "ess_server1-diagnostic.log" when crawling data source:

[ESS_JobMetadataID: JobDefinition:/<PATH_TO>/oracle/apps/ess/search/OracleSearchCrawlerCore] Execution error for request 10. Reason: Spawned job for request 10 produced the error exit code: ERROR[[
oracle.as.scheduler.ExecutionErrorException: Spawned job for request 10 produced the error exit code: ERROR


and in the request launcher log file (for ex: 9.log) found in the crawler log directory (or each ESS request in EM)
this log is <request ID>.log :

[TIME_STAMP] [search] [NOTIFICATION] [] [oracle.search] [tid: main] [ecid: TIME_STAMP] Creating launcher for the crawler
[TIME_STAMP] [search] [NOTIFICATION] [] [oracle.search] [tid: main] [ecid: TIME_STAMP] Retrieved credentials to connect to the database
[TIME_STAMP] [search] [ERROR] [] [oracle.search] [tid: main] [ecid: TIME_STAMP] Error connecting to database: IO Error: SO Exception was generated
[TIME_STAMP] [search] [ERROR] [] [oracle.search] [tid: main] [ecid: TIME_STAMP] Error in ESSCrawlerLauncher: IO Error: SO Exception was generated
[TIME_STAMP] [search] [ERROR] [] [oracle.search] [tid: main] [ecid:TIME_STAMP] [[
java.sql.SQLRecoverableException: IO Error: SO Exception was generated


All the data sources are up and running in the WLS console though .

CHANGES

 Here is the output of the listCred command to list the entry in CSF:

wls:/search_domain/serverConfig> listCred(map="oracle.search", key="SEARCH_DATABASE")
Already in Domain Runtime Tree

[Name : jdbc:oracle:thin:@hostname.domain_name:1521:db_service_name.domain_name), Description : null, expiry Date : null]
PASSWORD:xxxxx

 

CAUSE

In the Step 6-D "Create CSF Entries SES_ADMIN-KEY and SEARCH_DATABASE"

instead of using the SID in the database connection, the service name was used.

SOLUTION

 Since the database service name is specified in the connection string, the connection string should typically be in the below format:

jdbc:oracle:thin:@hostname.domain_name:1521/db_service_name.domain_name

Here is an example of the output :

wls:/search_domain/serverConfig> listCred(map="oracle.search", key="SEARCH_DATABASE");
Location changed to domainRuntime tree. This is a read-only tree with DomainMBean as the root.
For more help, use help(domainRuntime)

[Name : jdbc:oracle:thin:@machine.oracle.com:1521/SESDB.us.oracle.com, Description : null, expiry Date : null]
PASSWORD:xxxxx


it has a "/" after port instead of ":" .

Please, instead of your connection string, can you try with : jdbc:oracle:thin:@hostname.domain_name:1521/db_service_name.domain_name

ex: wls:/search_domain/serverConfig> createCred(map="oracle.search", key="SEARCH_DATABASE", user="jdbc:oracle:thin:@hostname.domain_name:1521/db_service_name.domain_name)", password="xxxxx")

Remark : Oracle® Secure Enterprise Search Installation and Upgrade Guide 11g Release 2 (11.2.2.2)
         http://docs.oracle.com/cd/E35215_01/install.11222/e35069/toc.htm#CEGDHGBD

--------------------
Step#6-D: wls:/>createCred(map="oracle.search", key="SEARCH_DATABASE", user="SES_DB_JDBC_Connect_String", password="SES_DB_Password")

Provide appropriate value for the SES_DB_Connect_String field in the format jdbc:oracle:thin:@host:port:SID.
--------------------


It is clearly documented that the database SID must be specified in the JDBC connection string.
You should use "/" if you want to specify the database service name in the JDBC connection string.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章