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

 
To BottomTo Bottom

In this Document

  Changes
  Cause

 

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.

posted @   zhjh256  阅读(1960)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2018-10-23 mariadb的flashback到底怎么样???防误删可以,但算不上真正的闪回--再看mariadb 10.3的System-Versioned Tables
点击右上角即可分享
微信分享提示