2016-08-01 6 views
1

새 Oracle 설치에서 패키지 내에 저장된 proc을 실행할 때마다 간헐적으로 자꾸 자꾸 계속됩니다.ODP.net - ORA-12537 저장 프로 시저를 호출 할 때 파일 오류가 발생했습니다.

SPROC는 다음과 같은 예외를 반환 WCF에서 호출됩니다

<ExceptionDetail xmlns="http://schemas.datacontract.org/2004/07/System.ServiceModel" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
      <HelpLink i:nil="true"/> 
      <InnerException> 
       <HelpLink i:nil="true"/> 
       <InnerException i:nil="true"/> 
       <Message>ORA-12537: Network Session: End of file</Message> 
       <StackTrace><![CDATA[at OracleInternal.Network.ReaderStream.Read(OraBuf OB) 
    at OracleInternal.TTC.OraBufReader.GetDataFromNetwork() 
    at OracleInternal.TTC.OraBufReader.Read(Boolean bIgnoreData) 
    at OracleInternal.TTC.MarshallingEngine.UnmarshalUB1(Boolean bIgnoreData) 
    at OracleInternal.TTC.TTCExecuteSql.ReceiveExecuteResponse(Accessor[]& defineAccessors, Accessor[] bindAccessors, Boolean bHasReturningParams, SQLMetaData& sqlMetaData, SqlStatementType statementType, Int64 noOfRowsFetchedLastTime, Int32 noOfRowsToFetch, Int32& noOfRowsFetched, Int64& queryId, Int32 longFetchSize, Int64 initialLOBFetchSize, Int64[] scnFromExecution, Boolean bAllInputBinds, Int32 arrayBindCount, DataUnmarshaller& dataUnmarshaller, MarshalBindParameterValueHelper& marshalBindParamsHelper, Int64[]& rowsAffectedByArrayBind, Boolean bDefineDone, Boolean& bMoreThanOneRowAffectedByDmlWithRetClause, List`1& implicitRSList, Boolean bLOBArrayFetchRequired)]]></StackTrace> 
       <Type>OracleInternal.Network.NetworkException</Type> 
      </InnerException> 
      <Message>ORA-12537: Network Session: End of file</Message> 
      <StackTrace><![CDATA[at Oracle.ManagedDataAccess.Client.OracleException.HandleError(OracleTraceLevel level, OracleTraceTag tag, Exception ex, OracleLogicalTransaction oracleLogicalTransaction) 
    at OracleInternal.TTC.TTCExecuteSql.ReceiveExecuteResponse(Accessor[]& defineAccessors, Accessor[] bindAccessors, Boolean bHasReturningParams, SQLMetaData& sqlMetaData, SqlStatementType statementType, Int64 noOfRowsFetchedLastTime, Int32 noOfRowsToFetch, Int32& noOfRowsFetched, Int64& queryId, Int32 longFetchSize, Int64 initialLOBFetchSize, Int64[] scnFromExecution, Boolean bAllInputBinds, Int32 arrayBindCount, DataUnmarshaller& dataUnmarshaller, MarshalBindParameterValueHelper& marshalBindParamsHelper, Int64[]& rowsAffectedByArrayBind, Boolean bDefineDone, Boolean& bMoreThanOneRowAffectedByDmlWithRetClause, List`1& implicitRSList, Boolean bLOBArrayFetchRequired) 
    at OracleInternal.ServiceObjects.OracleDataReaderImpl.FetchMoreRows(Int32 noOfRowsToFetch, Boolean fillReader, Boolean returnPSTypes) 
    at Oracle.ManagedDataAccess.Client.OracleDataReader.Read() 
    at System.Data.Common.DataAdapter.FillLoadDataRow(SchemaMapping mapping) 
    at System.Data.Common.DataAdapter.FillFromReader(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue) 
    at System.Data.Common.DataAdapter.Fill(DataSet dataSet, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords) 
    at Oracle.ManagedDataAccess.Client.OracleDataAdapter.Fill(DataSet dataSet, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords) 
    at Oracle.ManagedDataAccess.Client.OracleDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) 
    at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet) 
    at ***REDACTED*** 
    at ***REDACTED*** 
    at ***REDACTED*** 
    at SyncInvokeQtyAdjustments_Get(Object , Object[] , Object[]) 
    at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) 
    at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) 
    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc) 
    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc& rpc) 
    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc) 
    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc) 
    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc& rpc) 
    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc& rpc) 
    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc) 
    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc& rpc) 
    at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)]]></StackTrace> 
      <Type>Oracle.ManagedDataAccess.Client.OracleException</Type> 
     </ExceptionDetail> 

중 하나 그것에 패턴이있을 것 같지 않습니다 - 때때로 잘 작동, 가끔은하지 않습니다.

  • 는 ODP의 여러 버전이 존재하지 않습니다 보장하기 위해 GAC를 검사 :

    는 여기에 내가 해봤 물건입니다. 관리 데이터 액세스 구성 요소는 nuget에서 가져 왔으며 버전은 12.1.2400입니다.

  • 정렬 할 연결 문자열에 다양한 특성을 추가했습니다. 즉, 지속성 보안 정보 = True, 자체 조정 = True, 최소 풀 크기 = 3, 최대 풀 크기 = 25, Incr 풀 크기 = 3, Decr 풀 크기 = 1, 연결 시간 초과 = 20, 풀링 = 거짓, 연결 수명 = 59, - 다양한 구성을 시도했지만 행운을 보지 못했습니다. 예를 들어 풀링을 false/true로 설정합니다.
  • 일반 코드의 개체 폐기를 보장합니다. -이 문제를 일으키는 SPROC에서 아무것도 확인

    using System.Data; 
    using System.Data.Common; 
    using Oracle.ManagedDataAccess.Client; 
    
    
    /// <summary> 
    /// Extensions for xxxxx. 
    /// </summary> 
    /// <seealso cref="System.Data.Entity.DbContext" /> 
    public partial class xxxxEntities 
    { 
    
    
        public virtual DataSet ExecuteStoredProcedureAsDataSet(string storedProcName, int commandTimeoutSeconds, object[] parameters) 
        { 
         var sqlCommand = this.Database.Connection.CreateCommand(); 
         var resultSet = new DataSet(); 
    
    
         sqlCommand.CommandType = CommandType.StoredProcedure; 
         sqlCommand.CommandTimeout = commandTimeoutSeconds; 
         sqlCommand.CommandText = storedProcName; 
    
    
         sqlCommand.Parameters.AddRange(parameters); 
    
    
         var referenceCursor = new OracleParameter("P_DATAOUT", OracleDbType.RefCursor) 
         { 
          Direction = ParameterDirection.Output 
         }; 
    
    
         sqlCommand.Parameters.Add(referenceCursor); 
    
         using (var adapter = CreateDataAdapter(this.Database.Connection)) 
         { 
          adapter.SelectCommand = sqlCommand; 
    
    
          adapter.Fill(resultSet); 
         } 
    
    
         referenceCursor.Dispose(); 
         sqlCommand.Dispose(); 
    
    
         return resultSet; 
        } 
    
    
    
    
        /// <summary> 
        /// Creates the data adapter. 
        /// </summary> 
        /// <param name="connection">The connection.</param> 
        /// <returns>DbDataAdapter.</returns> 
        DbDataAdapter CreateDataAdapter(DbConnection connection) 
        { 
         return DbProviderFactories.GetFactory(connection).CreateDataAdapter(); 
        } 
    } 
    
  • '고정'값을하기 위해 저장된 프로 시저에서 쿼리를 절단 : 여기에 현재 사용하는 테스트 코드입니다. 아래에 설명 된 몇 가지 흥미로운 문제를 발견했습니다.

그래서 나는 실종 상태입니다. ODP 추적을 사용하도록 설정했는데 풀을 다룰 때 문제가있는 것 같습니다. 내가 절을 선택 문을 주석 어디에하여 SPROC에서 쿼리를 쥐게

2016-07-26 14:22:11.459348 TID:1 (PRI) (SVC) (ENT) OracleDataReaderImpl.FetchMoreRows() 
2016-07-26 14:22:11.459348 TID:1 (PRI) (SVC) (ENT) OracleConnectionImpl.AddAllPiggyBackRequests() 
2016-07-26 14:22:11.459348 TID:1 (PRI) (TTC) (ENT) TTCClose.Write() 
2016-07-26 14:22:11.460348 TID:1 (PRI) (TTC) (ENT) TTCFunction.WriteFunctionHeader() 
2016-07-26 14:22:11.460348 TID:1 (PRI) (TTC) (ENT) TTCMessage.WriteTTCCode() 
2016-07-26 14:22:11.460348 TID:1 (PRI) (TTC) (EXT) TTCMessage.WriteTTCCode() 
2016-07-26 14:22:11.460348 TID:1 (PRI) (TTC) (EXT) TTCFunction.WriteFunctionHeader() 
2016-07-26 14:22:11.460348 TID:1 (PRI) (TTC) (EXT) TTCClose.Write() 
2016-07-26 14:22:11.460348 TID:1 (PRI) (SVC) (EXT) OracleConnectionImpl.AddAllPiggyBackRequests() 
2016-07-26 14:22:11.460348 TID:1 (PRI) (TTC) (ENT) TTCExecuteSql.SendExecuteRequest() 
2016-07-26 14:22:11.460348 TID:1 (PRI) (TTC) (ENT) TTCExecuteSql.GetExecuteOptions() 
2016-07-26 14:22:11.460348 TID:1 (PRI) (TTC) (EXT) TTCExecuteSql.GetExecuteOptions() 
2016-07-26 14:22:11.460348 TID:1 (PRI) (TTC) (ENT) TTCExecuteSql.WriteOall8Message() 
2016-07-26 14:22:11.460348 TID:1 (PRI) (TTC) (ENT) TTCFunction.WriteFunctionHeader() 
2016-07-26 14:22:11.460348 TID:1 (PRI) (TTC) (ENT) TTCMessage.WriteTTCCode() 
2016-07-26 14:22:11.460348 TID:1 (PRI) (TTC) (EXT) TTCMessage.WriteTTCCode() 
2016-07-26 14:22:11.460348 TID:1 (PRI) (TTC) (EXT) TTCFunction.WriteFunctionHeader() 
2016-07-26 14:22:11.460348 TID:1 (PRI) (TTC) (ENT) TTCExecuteSql.WritePisdef() 
2016-07-26 14:22:11.460348 TID:1 (PRI) (TTC) (EXT) TTCExecuteSql.WritePisdef() 
2016-07-26 14:22:11.460348 TID:1 (PRI) (TTC) (ENT) TTCExecuteSql.WritePisdefData() 
2016-07-26 14:22:11.461348 TID:1 (PRI) (TTC) (EXT) TTCExecuteSql.WritePisdefData() 
2016-07-26 14:22:11.461348 TID:1 (NET) (SND) 00 4C 00 00 06 00 00 00 |.L......| 
2016-07-26 14:22:11.461348 TID:1 (NET) (SND) 00 00      |..  | 
2016-07-26 14:22:11.461348 TID:1 (NET) (SND) 11 69 00 01 01 01 01 02 |.i......| 
2016-07-26 14:22:11.461348 TID:1 (NET) (SND) 03 5E 00 02 80 40 01 03 |.^[email protected]| 
2016-07-26 14:22:11.461348 TID:1 (NET) (SND) 00 00 01 01 0D 00 00 00 |........| 
2016-07-26 14:22:11.461348 TID:1 (NET) (SND) 00 01 01 00 00 00 00 00 |........| 
2016-07-26 14:22:11.461348 TID:1 (NET) (SND) 00 00 00 00 00 00 01 00 |........| 
2016-07-26 14:22:11.461348 TID:1 (NET) (SND) 00 00 00 00 00 00 00 00 |........| 
2016-07-26 14:22:11.461348 TID:1 (NET) (SND) 02 01 36 00 00 00 03 A7 |..6.....| 
2016-07-26 14:22:11.461348 TID:1 (NET) (SND) EB C6 00 01 01 00 00 00 |........| 
2016-07-26 14:22:11.461348 TID:1 (NET) (SND) 00 00      |..  | 
2016-07-26 14:22:11.461348 TID:1 (PRI) (TTC) (EXT) TTCExecuteSql.WriteOall8Message() 
2016-07-26 14:22:11.461348 TID:1 (PRI) (TTC) (EXT) TTCExecuteSql.SendExecuteRequest() 
2016-07-26 14:22:11.461348 TID:1 (PRI) (TTC) (ENT) TTCExecuteSql.ReceiveExecuteResponse() 
2016-07-26 14:22:11.461348 TID:1 (PRI) (BUF) (COBP.GET) (poolid:2) (key:8192) (bufid:8) (count:5) (OraBufReader.GetDataFromNetwork) 
2016-07-26 14:22:12.161348 TID:1 (PRI) (ENT) TTCExecuteSql.ReceiveExecuteResponse() 
2016-07-26 14:22:12.162348 TID:1 (PRI) (ENT) OracleException.ctor() 
2016-07-26 14:22:12.162348 TID:1 (PRI) (ENT) OracleError.ctor() 
2016-07-26 14:22:12.162348 TID:1 (PRI) (EXT) OracleError.ctor() 
2016-07-26 14:22:12.162348 TID:1 (PRI) (EXT) OracleException.ctor() 
2016-07-26 14:22:12.163348 TID:1 (PRI) (TTC) (ERR) TTCExecuteSql.ReceiveExecuteResponse() (txnid=n/a) OracleInternal.Network.NetworkException (0x000030F9): ORA-12537: Network Session: End of file 
    at OracleInternal.Network.ReaderStream.Read(OraBuf OB) 
    at OracleInternal.TTC.OraBufReader.GetDataFromNetwork() 
    at OracleInternal.TTC.OraBufReader.Read(Boolean bIgnoreData) 
    at OracleInternal.TTC.MarshallingEngine.UnmarshalUB1(Boolean bIgnoreData) 
    at OracleInternal.TTC.TTCExecuteSql.ReceiveExecuteResponse(Accessor[]& defineAccessors, Accessor[] bindAccessors, Boolean bHasReturningParams, SQLMetaData& sqlMetaData, SqlStatementType statementType, Int64 noOfRowsFetchedLastTime, Int32 noOfRowsToFetch, Int32& noOfRowsFetched, Int64& queryId, Int32 longFetchSize, Int64 initialLOBFetchSize, Int64[] scnFromExecution, Boolean bAllInputBinds, Int32 arrayBindCount, DataUnmarshaller& dataUnmarshaller, MarshalBindParameterValueHelper& marshalBindParamsHelper, Int64[]& rowsAffectedByArrayBind, Boolean bDefineDone, Boolean& bMoreThanOneRowAffectedByDmlWithRetClause, List`1& implicitRSList, Boolean bLOBArrayFetchRequired) 
2016-07-26 14:22:12.163348 TID:1 (PRI) (EXT) TTCExecuteSql.ReceiveExecuteResponse() 
2016-07-26 14:22:12.163348 TID:1 (PRI) (TTC) (EXT) TTCExecuteSql.ReceiveExecuteResponse() 
2016-07-26 14:22:12.163348 TID:1 (PRI) (ENT) OracleDataReaderImpl.FetchMoreRows() 
2016-07-26 14:22:12.163348 TID:1 (PRI) (SVC) (ERR) OracleDataReaderImpl.FetchMoreRows() (txnid=n/a) Oracle.ManagedDataAccess.Client.OracleException (0x80004005): ORA-12537: Network Session: End of file ---> OracleInternal.Network.NetworkException (0x000030F9): ORA-12537: Network Session: End of file 

: 처음으로, 나는이있어이

2016-07-26 11:43:55.268765 TID:6 (PRI) (SVC) (ENT) OracleConnectionImpl.EvaluateDbMajorMinorPatchsetVersion() 
2016-07-26 11:43:55.268765 TID:6 (PRI) (SVC) (EXT) OracleConnectionImpl.EvaluateDbMajorMinorPatchsetVersion() 
2016-07-26 11:43:55.268765 TID:6 (PRI) (SVC) (EXT) OracleConnectionImpl.Connect() (oper=open) (aff=n/a) (inst=WMSQA) (affmatch=n/a) (sessid=2540:42190) (F;F;F;WMSQA;N) (pmid=29382239) 
2016-07-26 11:43:55.268765 TID:6 (PRI) (ENT) (CP) PoolManager`3.PutNewPR() (aff=n/a) (inst=WMSQA) (affmatch=n/a) (sessid=2540:42190) (F;F;F;WMSQA;N) (pmid=29382239) 
2016-07-26 11:43:55.268765 TID:6 (PRI) (ENT) (CP) OraclePool.PutNewPR() 
2016-07-26 11:43:55.268765 TID:6 (PRI) (ENT) (CP) Pool`3.PutNewPR() 
2016-07-26 11:43:55.268765 TID:6 (PRI) (CP) Pool`3.PutNewPR() (oper=cp:put:reg1) (aff=n/a) (inst=WMSQA) (affmatch=n/a) (sessid=2540:42190) (F;F;T;WMSQA;N) (pmid=29382239) 
2016-07-26 11:43:55.268765 TID:6 (PRI) (EXT) (CP) Pool`3.PutNewPR() 
2016-07-26 11:43:55.268765 TID:6 (PRI) (EXT) (CP) OraclePool.PutNewPR() 
2016-07-26 11:43:55.268765 TID:6 (PRI) (EXT) (CP) PoolManager`3.PutNewPR() (aff=n/a) (inst=WMSQA) (affmatch=n/a) (sessid=2540:42190) (F;F;T;WMSQA;N) (pmid=29382239) 
2016-07-26 11:43:55.269765 TID:6 (PRI) (EXT) (CP) PoolManager`3.CreateNewPR() (aff=n/a) (inst=WMSQA) (affmatch=n/a) (sessid=2540:42190) (F;F;T;WMSQA;N) (pmid=29382239) 
2016-07-26 11:43:55.269765 TID:6 (PRI) (CP) PoolManager`3.PopulatePool() PopulatePoolThreadFunc(created=2; max=25; total=3) 
2016-07-26 11:43:55.269765 TID:6 (PRI) (EXT) (CP) PoolManager`3.PopulatePool() 
2016-07-26 11:43:55.880826 TID:15 (PRI) (ENT) TTCExecuteSql.ReceiveExecuteResponse() 
2016-07-26 11:43:55.881826 TID:15 (PRI) (ENT) OracleException.ctor() 
2016-07-26 11:43:55.885826 TID:15 (PRI) (ENT) OracleError.ctor() 
2016-07-26 11:43:55.886826 TID:15 (PRI) (EXT) OracleError.ctor() 
2016-07-26 11:43:55.886826 TID:15 (PRI) (EXT) OracleException.ctor() 
2016-07-26 11:43:55.890827 TID:15 (PRI) (TTC) (ERR) TTCExecuteSql.ReceiveExecuteResponse() (txnid=n/a) OracleInternal.Network.NetworkException (0x000030F9): ORA-12537: Network Session: End of file 
    at OracleInternal.Network.ReaderStream.Read(OraBuf OB) 
    at OracleInternal.TTC.OraBufReader.GetDataFromNetwork() 
    at OracleInternal.TTC.OraBufReader.Read(Boolean bIgnoreData) 
    at OracleInternal.TTC.MarshallingEngine.UnmarshalUB1(Boolean bIgnoreData) 
    at OracleInternal.TTC.TTCExecuteSql.ReceiveExecuteResponse(Accessor[]& defineAccessors, Accessor[] bindAccessors, Boolean bHasReturningParams, SQLMetaData& sqlMetaData, SqlStatementType statementType, Int64 noOfRowsFetchedLastTime, Int32 noOfRowsToFetch, Int32& noOfRowsFetched, Int64& queryId, Int32 longFetchSize, Int64 initialLOBFetchSize, Int64[] scnFromExecution, Boolean bAllInputBinds, Int32 arrayBindCount, DataUnmarshaller& dataUnmarshaller, MarshalBindParameterValueHelper& marshalBindParamsHelper, Int64[]& rowsAffectedByArrayBind, Boolean bDefineDone, Boolean& bMoreThanOneRowAffectedByDmlWithRetClause, List`1& implicitRSList, Boolean bLOBArrayFetchRequired) 

127에 추적을 램핑, 난 그냥있어 점차적으로 문제가되는 쿼리인지 확인하기 위해 다시 도입했습니다 (Oracle Developer에서 실행하면 문제가 없습니다). 나는이 문을 좁혀했습니다 - 나는 그것을 재 도입하는 경우, 다시 파일 예외의 끝을 얻을 :

WHERE 
     -- Only handle records that contain a numeric value in the ref field. 
     ISNUMERIC(PTT.REF_FIELD_2) = 1 

이것은 ISNUMERIC 기능은 패키지의 모습입니다;

FUNCTION ISNUMERIC (p_string IN VARCHAR2) RETURN INT 
    IS 
    v_new_num NUMBER; 
    BEGIN 
    IF p_string IS NULL 
    THEN 
     RETURN 0; 
    END IF; 

    v_new_num := TO_NUMBER(p_string); 
    RETURN 1; 
    EXCEPTION 
    WHEN VALUE_ERROR THEN 
     RETURN 0; 
    END ISNUMERIC; 

는 처음에 나는 그것이 인해 예외의 수를 더 실행을 방지했다 잡은 예외 수있을 줄 알았는데. 그러나 나는 단지 '1'을 반환하는 기능을 단순화하고 여전히 매번 작동하지 않았다.

쿼리 결과는 ref 커서 등을 통해 다시 전달됩니다. 그 즉시 오류가 발생하지 중지 - -

PROCEDURE DEVSP_API_GETxxxx( 
    P_STARTDATE IN DATE 
    , P_ENDDATE IN DATE 
    , P_xxx IN P_xxx_TYPE 
    , <snip> 

    , P_DATAOUT OUT sys_refcursor 
) AS 
    BEGIN 

    OPEN P_DATAOUT FOR 


    SELECT 
     'asdsa' as "x", 
     'sadasdsad' as "z", 
     0 as "Qty", 
<snip> 

마지막으로,이 모든 기능은 선택 진술과 어디 절에서 호출을 제거 I 함수를 실행하는 것과 같은 논리로 대체 - 단지 인라인 SELECT 내에서 그리고 WHERE 문.

무슨 일 이니?함수 호출을 포함하는 패키지 내에서 sprocs를 실행할 때 ODP.net에 제한이 있습니까? 조금 이상하게 보입니다.

해결 방법은 단지 기능을 사용하지 않는 것입니다,하지만 난하고 싶지 않아 그 어떤 선택 문 연합 (EU) 기반의 쿼리에서 같은 논리를 반복 그들 조건식을 가지고있다.

은 어떤 도움이나 포인터는 많이 감사합니다!

ps. 투명성을 위해 지난주 Oracle 포럼에 게시했지만 아무런 반응이 없었습니다.

는 업데이트 : 03 8 월 2016

마지막 추적의 비트를 시도하는 서버에 대한 액세스를 얻을 수 있었다. 나는 또한 같은 폴더에 코어 덤프를 볼 수 있습니다

*** 2016-08-03 10:14:39.111 
*** SESSION ID:(2526.53330) 2016-08-03 10:14:39.111 
*** CLIENT ID:() 2016-08-03 10:14:39.111 
*** SERVICE NAME:(XXXXX) 2016-08-03 10:14:39.111 
*** MODULE NAME:(iisexpress.exe) 2016-08-03 10:14:39.111 
*** CLIENT DRIVER:(ODPM.NET) 2016-08-03 10:14:39.111 
*** ACTION NAME:() 2016-08-03 10:14:39.111 

Exception [type: SIGSEGV, Address not mapped to object] [ADDR:0x0] [PC:0x3CEBE1D, pmucfst()+13] [flags: 0x0, count: 1] 
Incident 109041 created, dump file /u01/app/oracle/diag/rdbms/xxxx/XXXX/incident/incdir_109041/XXXXX_ora_13149_i109041.trc 
ORA-07445: exception encountered: core dump [pmucfst()+13] [SIGSEGV] [ADDR:0x0] [PC:0x3CEBE1D] [Address not mapped to object] [] 

ssexhd: crashing the process... 
Shadow_Core_Dump = PARTIAL 

다음은 프로세스가 조기에 종료 될 때 추적 로그에 온거야. 나는 거기에 버킷 트레이스 파일을 grepping 해 봤지만 아무 것도 명백하지 않다는 것을 알았습니다. - 그러나 당신이 찾고있는 것을 모를 때 무언가를 찾기 란 어렵습니다.

나는 코어의 shedload가이 기능을 사용 할 때마다 sprocs가를 실행하기 이전의 시도에서 덤프를 볼 수 있습니다 - 그래서 적어도 합리적으로 일치합니다.

+0

보통 당신은 데이터 어댑터가 아닌 데이터 집합을 사용하여 Recursor에서 DataTable을 채 웁니다. DataSet은 여러 테이블 (즉, 여러 DataTable)과 다른 테이블을 포함 할 수 있습니다. 설명서를주의 깊게 확인하고 주어진 예제를 따르십시오. –

+0

데이터베이스 서버에서 ALERT 로그를 가져옵니다. 대부분의 오류는 연결을 종료하는 데이터베이스 측에서 발생합니다. 실제 오류는 경고 로그에 표시됩니다. –

+0

Thanks @WernfriedDomscheit와 ChristianShay - 두 가지 제안을 모두 시도하겠습니다. 나는 경고 로그에 도착하려고 노력했다. 그러나 이제까지 dba는 아직 나에게 접근을 제공하지 않고 있었다! 나는 결과를 게시 할 것이다. – PoorbandTony

답변

1

같은 문제가 발생했습니다. 끊기/ORA-600 [19708] 등 부실 REFCURSOR 바인드를 (문서의 ID 18191823.8)를 참조하면

해결
확인 기간을 - 당신이 버그 18191823 타격하는 것 같습니다

: 오라클 지원으로 대응 바인딩 된 PL/SQL 변수의 최소 길이는 바인딩 된 REF 커서의 길이와 적어도 같습니다.

수정

먼저 2016년 7월 패치에 포함되어 있습니다.

+0

Brad에게 감사의 말을 전합니다. 응답이 늦어서 죄송합니다. DBA와 점검하여 지금 패치가 적용되었는지 확인하겠습니다. 다시 한 번 감사드립니다! – PoorbandTony

+0

문제 없습니다. 7 월 패치가 실제로 우리를 위해 문제를 해결했음을 확인할 수 있습니다. –