Skip to Content
0
Former Member
Jul 16, 2007 at 09:05 AM

RFC execution process terminates the Java Process

15 Views

Hi All,

we have a RFC which returns large data with export parameter. While executing JCO.client.execute(), java process is getting terminated. I tried to set the more heap size but of no use. It didn't give any OutOfMemory either.

The JCO trace file at level 10 shows as below which clearly indicates that something is going wrong at JNI layer of JCO.

The problem seems to be with allocation of heap size in 'C' layer of JCO.<b>The trace file has below last entries</b>

<i>JMS Async S21514 [14:34:47:386]: [JNI-LAYER] RFC.Tables_C2Java() enter, [SUCCESS]

JMS Async S21514 [14:34:47:386]: [JNI-LAYER] RFC.reallocRecordBuffers() enter, [SUCCESS]

JMS Async S21514 [14:34:47:386]: [JNI-LAYER] RFC.reallocRecordBuffers("ZWNVPAIR"(4AB2BB8C),54D1A740) enter [SUCCESS]</i>

It seems to suggest that reallocRecordBuffers was never completed and it is this call which could be responsible for java process getting killed.

I think a successfull call will be recorded as below in JCO trace file:

Completion of RFC call will be recorded as below in JCO trace file:

<i>JMS Async S21514 [14:34:47:386]: [JNI-LAYER] RFC.Tables_C2Java() enter, [SUCCESS]

JMS Async S21514 [14:34:47:386]: [JNI-LAYER] RFC.reallocRecordBuffers() enter, [SUCCESS]

JMS Async S21514 [14:34:47:386]: [JNI-LAYER] RFC.reallocRecordBuffers("ZWNVPAIR"(4AB2BB8C),54D1A740) enter [SUCCESS]

JMS Async S21514 [14:34:47:386]: [JNI-LAYER] RFC.reallocRecordBuffers() with rc = RFC_OK leave, [SUCCESS]

............

...........

JMS Async S21514 [14:34:47:386]: [JNI-LAYER] RFC.Tables_C2Java() with rc = RFC_OK leave, [SUCCESS]

......

.......

JMS Async S21514 [14:34:47:386]: [JAV-LAYER] JCO.Client.execute (Z_DB_READER) on handle [X] returns after XXXX ms

</i>

Can anyone please help me here in understanding the above behavior?