ORACLE .net應用程式透過ODP.NET連線oracle12c之ORA-03137
[ora12c@ora29 trace]$ uname -a
Linux ora29 2.6.39-400.17.1.el6uek.x86_64 #1 SMP Fri Feb 22 18:16:18 PST 2013 x86_64 x86_64 x86_64 GNU/Linux
[ora12c@ora29 trace]$
資料庫版本:
[ora12c@ora29 trace]$ sqlplus -v
SQL*Plus: Release 12.2.0.1.0 Production
[ora12c@ora29 trace]$
今天,測試同事反應,他們.net應用程式連線的12c資料庫出問題了,客戶端應用程式報錯:
登入資料庫伺服器,檢視告警日誌也發現一大堆的類似報錯:
2017-06-14T13:16:40.873489+08:00
Errors in file /u03/app/diag/rdbms/ora12c/ora12c/trace/ora12c_ora_12761.trc (incident=26305):
ORA-03137: 來自客戶機的格式錯誤的 TTC 包被拒絕: [kpoal8Check-3] [49152] [0] [0x000000000] [34856] [] [] []
2017-06-14T13:16:40.876466+08:00
Session (7,27633): Bad TTC Packet Detected: Inbound connection from client
Session (7,27633): Bad TTC Packet Detected: DB Logon User: BMITEST, Remote Machine: IIS APPPOOL\SE28, Program: w3wp.exe, OS User: WJW
Session (7,27633): Bad TTC Packet Detected: Client IP Address: 10.117.130.28
2017-06-14T13:22:23.986783+08:00
Errors in file /u03/app/diag/rdbms/ora12c/ora12c/trace/ora12c_ora_14136.trc (incident=26260):
ORA-03137: 來自客戶機的格式錯誤的 TTC 包被拒絕: [kpoal8Check-3] [49152] [0] [0x000000000] [34856] [] [] []
2017-06-14T13:22:23.988291+08:00
Session (254,48328): Bad TTC Packet Detected: Inbound connection from client
Session (254,48328): Bad TTC Packet Detected: DB Logon User: BMITEST, Remote Machine: IIS APPPOOL\SE28, Program: w3wp.exe, OS User: WJW
Session (254,48328): Bad TTC Packet Detected: Client IP Address: 10.117.130.28
檢視trc檔案內容,沒有有價值的東西:
[ora12c@ora29 trace]$ cat /u03/app/diag/rdbms/ora12c/ora12c/trace/ora12c_ora_14136.trc
Trace file /u03/app/diag/rdbms/ora12c/ora12c/trace/ora12c_ora_14136.trc
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
Build label: RDBMS_12.2.0.1.0_LINUX.X64_170125
ORACLE_HOME: /u03/app/oracle/product/12.2.0/db_1
System name: Linux
Node name: ora29
Release: 2.6.39-400.17.1.el6uek.x86_64
Version: #1 SMP Fri Feb 22 18:16:18 PST 2013
Machine: x86_64
Instance name: ora12c
Redo thread mounted by this instance: 1
Oracle process number: 82
Unix process pid: 14136, image: oracle@ora29
*** 2017-06-14T13:22:23.987987+08:00
*** SESSION ID:(254.48328) 2017-06-14T13:22:23.988026+08:00
*** CLIENT ID:() 2017-06-14T13:22:23.988035+08:00
*** SERVICE NAME:(ora12c) 2017-06-14T13:22:23.988044+08:00
*** MODULE NAME:(w3wp.exe) 2017-06-14T13:22:23.988053+08:00
*** ACTION NAME:() 2017-06-14T13:22:23.988061+08:00
*** CLIENT DRIVER:(ODPM.NET) 2017-06-14T13:22:23.988069+08:00
DDE: Problem Key 'ORA 3137 [kpoal8Check-3]' was flood controlled (0x6) (incident: 26260)
ORA-03137: 來自客戶機的格式錯誤的 TTC 包被拒絕: [kpoal8Check-3] [49152] [0] [0x000000000] [34856] [] [] []
[ora12c@ora29 trace]$
查詢oracle metalink網站,發現一個類似的報錯文章:
ORA-03137: Malformed TTC Packet From Client Rejected: [kpoal8Check-3] [49152] (文件 ID 2267564.1)
APPLIES TO:
Oracle Data Provider for .NET - Version 12.1.0.2 and laterMicrosoft Windows (32-bit)
Microsoft Windows x64 (64-bit)
SYMPTOMS
After upgrading Oracle client from 11.2.0.4.0 to 12.1.0.2.0, .NET application which is using ODP.NET Managed driver to connect Oracle database is throwing the error as below :
ORA-03137: Malformed TTC Packet From Client Rejected: [kpoal8Check-3] [49152]
The error occurs when a query is executed against the Oracle database from .NET application. Same query works fine if it is executed from SQL*PLUS environment.
CAUSE
While upgrading Oracle client if previous version of the ODP.NET dlls still exist in system, it leads to the error as described earlier.
The issue is discussed in internal bug.
SOLUTION
To resolve the issue, download and apply the WINDOWS DB BUNDLE PATCH 12.1.0.2.170418 or latest on Oracle client 12.1.0.2.
由於本地資料庫是oracle 12.2.0.1 for linux 6.4,但是資料庫後臺所報的錯誤是相同的,然而,MOS上沒有找到對應linux平臺的Patch,目前只能升級ODP.NET經過溝通,開發同事反饋.net應用程式使用的12c資料庫連線驅動確實是ODP.NET,現在需要升級到122cR1升級包是ODP.NET_Managed_ODAC122cR1.zip
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29357786/viewspace-2140726/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 4.2.14.4 為ODP.NET啟用快速連線故障轉移
- 如何透過DBeaver 連線 TDengine?
- Oracle透過gateway連線sqlserver2008OracleGatewaySQLServer
- Oracle12c連線問題[ORA-28040]Oracle
- Oracle12c 之後的路線圖Oracle
- 透過Amoeba連線mysql報錯MySql
- 如何透過連線資料庫的方式對線下應用進行線上擴充套件資料庫套件
- 記一次oracle透過dblink連線mysql實施OracleMySql
- kettl連線oracle12c 可插拔資料庫pdbOracle資料庫
- 樹莓派透過nmcli命令連線WIFI樹莓派WiFi
- Oracle 19c透過SCAN連線ORA-12520Oracle
- ODBC客戶端連線ORACLE透過PowerDesigner匯出表ER圖客戶端Oracle
- BRANCH透過收購打造應用程式使用新方式
- PLC透過Modbus轉Profinet閘道器連線壓力計的配置方法
- iOS應用崩潰了,如何透過崩潰手機連線電腦查詢日誌方法iOS應用崩潰
- JSP透過JDBC與Oracle相連 (轉)JSJDBCOracle
- oracle資料庫透過sqlplus連線的幾種方式介紹Oracle資料庫SQL
- dotnet 透過 Elmish.WPF 使用 F# 編寫 WPF 應用
- 應用JDBC連線SQLiteJDBCSQLite
- 備忘錄:關於.net程式連線Oracle資料庫Oracle資料庫
- Linux 系統如何透過 netstat 命令檢視連線數判斷攻擊Linux
- gRPC(五)進階:透過TLS建立安全連線RPCTLS
- 如何設定透過TeamViewer連線群暉NASView
- Apache連線多臺tomcat,透過JK2ApacheTomcat
- 求助:如果透過weblogic的datasource獲取連線!!!Web
- Oracle透過ODBC連線SQL Server資料庫後ORA-12514OracleSQLServer資料庫
- oracle連線SQLserver--通過ODBCOracleSQLServer
- Oracle 連線有時候慢,應用稍微一忙,偶爾出現連線失敗 的故障解決過程Oracle
- 【JDBC】使用OracleDataSource建立連線池用於連線OracleJDBCOracle
- 004 透過連結串列學Rust之測試Rust
- ODAC (odp.net) 從開發到部署
- 透過機器人應用視覺機器人視覺
- BBC透過Taster VR應用程式 希望獲得更多沉浸感ASTVR
- 變頻器透過Modbus轉Profinet閘道器連線電機與PLC通訊
- .Net與Oracle的資料庫連線Oracle資料庫
- Gartner預測:5年5億新應用,65%應用程式將透過低程式碼實現!
- 使用 Java 客戶端透過 HTTPS 連線到 EasysearchJava客戶端HTTP
- 透過WLAN測試驗證網路的連線性