Topic
  • 11 replies
  • Latest Post - ‏2010-04-06T22:01:34Z by VenuGopalValiveti
SystemAdmin
SystemAdmin
6042 Posts

Pinned topic ims connect, big endian, swap bits

‏2005-07-19T16:15:40Z |
Sorry for the 132 character width. I needed to paste long strings. Please use fixed font with a wide text window to view.

I am doing my first IMS connect service. The request should contain the following:

  • ----.----1----.----2----.----3----.----4----.----5----.----6----.----7----.----8----.----9----.---10
0 IOAREA= . PA2741QG I 019023156
0400DCFFFFDC4C4444FFFFFFFFF444444444444444444444444444444444444444444444444
0B0071274187090000019023156000000000000000000000000000000000000000000000000
The COBOL layout is:

05 TP-IP-AREA.
10 TP-IP-LL PIC S9(4) COMP VALUE +0.
10 TP-IP-ZZ PIC S99 COMP.
10 TP-IP-TRANCODE PIC X(9).
10 TP-IP-PFKEY PIC X.
10 TP-FILLER PIC X(4).
10 TP-IP-NAME.
15 TP-IP-NUMBER.
20 TP-IP-NUMBER9 PIC X(9).
20 TP-IP-NUMBER3 PIC X(3).
15 FILLER PIC X(18).
10 TP-IP-TYPE PIC XXX.
10 TP-IP-LINES OCCURS 14 TIMES.
15 FILLER PIC X(53).
15 TP-IP-PROVNO PIC X(12).
15 TP-IP-ASTERISK PIC X.
15 FILLER PIC X(13).
10 FILLER PIC X(10).

Webshpere created the following two methods for TP-IP-LL:

public short getTp__ip__ll()
{
Short result = (Short)this.basicGet("tp__ip__ll", 0);
return result == null ? 0 : result.shortValue();
}

public void setTp__ip__ll(short tp__ip__ll)
{
if ((tp__ip__ll < -9999) || (tp__ip__ll > 9999))
throw new IllegalArgumentException(com.ibm.wsif.jca.log.JCAResource.get("IWAA0125E", Short.toString(tp__ip__ll),
"tp__ip__ll"));
this.basicSet("tp__ip__ll", 0, new Short(tp__ip__ll));
}

In my test class I have the following code:

request.setTp__ip__ll((short) 75);

The decimal value 74 equates to the hexidecimal value 4B. When I run this I get the following error:

javax.resource.ResourceException: ICO0024E: com.ibm.connector2.ims.ico.IMSTCPIPManagedConnection@5039056a.buildInputMsg(Record)
error. Invalid segment length (LL) of 19200 in input object. com.ibm.ims.ico.IMSInputOTMAMsg@574b456a.setAppData(byte[):

It so happens 19200 is 75 multiplied by 256, or shifted left four times, and appears to be a big-endian/little-endian problem. I
tried using 19200, hoping it would convert the other way, but that value is too large and is rejected. I want to maintain as much
autogeneration as possible without change. What can I change in the binding class so the value 75 is used as 75? Thanks
Updated on 2010-04-06T22:01:34Z at 2010-04-06T22:01:34Z by VenuGopalValiveti
  • SystemAdmin
    SystemAdmin
    6042 Posts

    Re: ims connect, big endian, swap bits

    ‏2005-07-19T17:56:26Z  
    CAN I HAVE SOME FOLLOW UP FROM IBM ON THIS ISSUE PLEASE?
    >Subject: ims connect, big endian, swap bits
    >Date: Tue, 19 Jul 2005 11:15:40 -0500
    >
    >Sorry for the 132 character width. I needed to paste long strings. Please use fixed font with a wide text window to view.
    >
    >I am doing my first IMS connect service. The request should contain the following:
    >
    >- ----.----1----.----2----.----3----.----4----.----5----.----6----.----7----.----8----.----9----.---10
    >0 IOAREA= . PA2741QG I 019023156
    > 0400DCFFFFDC4C4444FFFFFFFFF444444444444444444444444444444444444444444444444
    > 0B0071274187090000019023156000000000000000000000000000000000000000000000000
    >
    >
    >The COBOL layout is:
    >
    > 05 TP-IP-AREA.
    > 10 TP-IP-LL PIC S9(4) COMP VALUE +0.
    > 10 TP-IP-ZZ PIC S99 COMP.
    > 10 TP-IP-TRANCODE PIC X(9).
    > 10 TP-IP-PFKEY PIC X.
    > 10 TP-FILLER PIC X(4).
    > 10 TP-IP-NAME.
    > 15 TP-IP-NUMBER.
    > 20 TP-IP-NUMBER9 PIC X(9).
    > 20 TP-IP-NUMBER3 PIC X(3).
    > 15 FILLER PIC X(18).
    > 10 TP-IP-TYPE PIC XXX.
    > 10 TP-IP-LINES OCCURS 14 TIMES.
    > 15 FILLER PIC X(53).
    > 15 TP-IP-PROVNO PIC X(12).
    > 15 TP-IP-ASTERISK PIC X.
    > 15 FILLER PIC X(13).
    > 10 FILLER PIC X(10).
    >
    >Webshpere created the following two methods for TP-IP-LL:
    >
    > public short getTp__ip__ll()
    > {
    > Short result = (Short)this.basicGet("tp__ip__ll", 0);
    > return result == null ? 0 : result.shortValue();
    > }
    >
    > public void setTp__ip__ll(short tp__ip__ll)
    > {
    > if ((tp__ip__ll < -9999) || (tp__ip__ll > 9999))
    > throw new IllegalArgumentException(com.ibm.wsif.jca.log.JCAResource.get("IWAA0125E", Short.toString(tp__ip__ll),
    >"tp__ip__ll"));
    > this.basicSet("tp__ip__ll", 0, new Short(tp__ip__ll));
    > }
    >
    >In my test class I have the following code:
    >
    >request.setTp__ip__ll((short) 75);
    >
    >The decimal value 74 equates to the hexidecimal value 4B. When I run this I get the following error:
    >
    >javax.resource.ResourceException: ICO0024E: com.ibm.connector2.ims.ico.IMSTCPIPManagedConnection@5039056a.buildInputMsg(Record)
    >error. Invalid segment length (LL) of 19200 in input object. com.ibm.ims.ico.IMSInputOTMAMsg@574b456a.setAppData(byte[):
    >
    >It so happens 19200 is 75 multiplied by 256, or shifted left four times, and appears to be a big-endian/little-endian problem. I
    >tried using 19200, hoping it would convert the other way, but that value is too large and is rejected. I want to maintain as much
    >autogeneration as possible without change. What can I change in the binding class so the value 75 is used as 75? Thanks
  • SystemAdmin
    SystemAdmin
    6042 Posts

    Re: ims connect, big endian, swap bits

    ‏2005-07-19T20:13:52Z  
    CAN I HAVE SOME FOLLOW UP FROM IBM ON THIS ISSUE PLEASE?
    >Subject: ims connect, big endian, swap bits
    >Date: Tue, 19 Jul 2005 11:15:40 -0500
    >
    >Sorry for the 132 character width. I needed to paste long strings. Please use fixed font with a wide text window to view.
    >
    >I am doing my first IMS connect service. The request should contain the following:
    >
    >- ----.----1----.----2----.----3----.----4----.----5----.----6----.----7----.----8----.----9----.---10
    >0 IOAREA= . PA2741QG I 019023156
    > 0400DCFFFFDC4C4444FFFFFFFFF444444444444444444444444444444444444444444444444
    > 0B0071274187090000019023156000000000000000000000000000000000000000000000000
    >
    >
    >The COBOL layout is:
    >
    > 05 TP-IP-AREA.
    > 10 TP-IP-LL PIC S9(4) COMP VALUE +0.
    > 10 TP-IP-ZZ PIC S99 COMP.
    > 10 TP-IP-TRANCODE PIC X(9).
    > 10 TP-IP-PFKEY PIC X.
    > 10 TP-FILLER PIC X(4).
    > 10 TP-IP-NAME.
    > 15 TP-IP-NUMBER.
    > 20 TP-IP-NUMBER9 PIC X(9).
    > 20 TP-IP-NUMBER3 PIC X(3).
    > 15 FILLER PIC X(18).
    > 10 TP-IP-TYPE PIC XXX.
    > 10 TP-IP-LINES OCCURS 14 TIMES.
    > 15 FILLER PIC X(53).
    > 15 TP-IP-PROVNO PIC X(12).
    > 15 TP-IP-ASTERISK PIC X.
    > 15 FILLER PIC X(13).
    > 10 FILLER PIC X(10).
    >
    >Webshpere created the following two methods for TP-IP-LL:
    >
    > public short getTp__ip__ll()
    > {
    > Short result = (Short)this.basicGet("tp__ip__ll", 0);
    > return result == null ? 0 : result.shortValue();
    > }
    >
    > public void setTp__ip__ll(short tp__ip__ll)
    > {
    > if ((tp__ip__ll < -9999) || (tp__ip__ll > 9999))
    > throw new IllegalArgumentException(com.ibm.wsif.jca.log.JCAResource.get("IWAA0125E", Short.toString(tp__ip__ll),
    >"tp__ip__ll"));
    > this.basicSet("tp__ip__ll", 0, new Short(tp__ip__ll));
    > }
    >
    >In my test class I have the following code:
    >
    >request.setTp__ip__ll((short) 75);
    >
    >The decimal value 74 equates to the hexidecimal value 4B. When I run this I get the following error:
    >
    >javax.resource.ResourceException: ICO0024E: com.ibm.connector2.ims.ico.IMSTCPIPManagedConnection@5039056a.buildInputMsg(Record)
    >error. Invalid segment length (LL) of 19200 in input object. com.ibm.ims.ico.IMSInputOTMAMsg@574b456a.setAppData(byte[):
    >
    >It so happens 19200 is 75 multiplied by 256, or shifted left four times, and appears to be a big-endian/little-endian problem. I
    >tried using 19200, hoping it would convert the other way, but that value is too large and is rejected. I want to maintain as much
    >autogeneration as possible without change. What can I change in the binding class so the value 75 is used as 75? Thanks
    This is not a place for official support although some IBMers read and
    respond here.

    David McDivitt wrote:
    > CAN I HAVE SOME FOLLOW UP FROM IBM ON THIS ISSUE PLEASE?
    >
    >
    >
    >>Subject: ims connect, big endian, swap bits
    >>Date: Tue, 19 Jul 2005 11:15:40 -0500
    >>
    >>Sorry for the 132 character width. I needed to paste long strings. Please use fixed font with a wide text window to view.
    >>
    >>I am doing my first IMS connect service. The request should contain the following:
    >>
    >>- ----.----1----.----2----.----3----.----4----.----5----.----6----.----7----.----8----.----9----.---10
    >>0 IOAREA= . PA2741QG I 019023156
    >> 0400DCFFFFDC4C4444FFFFFFFFF444444444444444444444444444444444444444444444444
    >> 0B0071274187090000019023156000000000000000000000000000000000000000000000000
    >>
    >>
    >>The COBOL layout is:
    >>
    >> 05 TP-IP-AREA.
    >> 10 TP-IP-LL PIC S9(4) COMP VALUE +0.
    >> 10 TP-IP-ZZ PIC S99 COMP.
    >> 10 TP-IP-TRANCODE PIC X(9).
    >> 10 TP-IP-PFKEY PIC X.
    >> 10 TP-FILLER PIC X(4).
    >> 10 TP-IP-NAME.
    >> 15 TP-IP-NUMBER.
    >> 20 TP-IP-NUMBER9 PIC X(9).
    >> 20 TP-IP-NUMBER3 PIC X(3).
    >> 15 FILLER PIC X(18).
    >> 10 TP-IP-TYPE PIC XXX.
    >> 10 TP-IP-LINES OCCURS 14 TIMES.
    >> 15 FILLER PIC X(53).
    >> 15 TP-IP-PROVNO PIC X(12).
    >> 15 TP-IP-ASTERISK PIC X.
    >> 15 FILLER PIC X(13).
    >> 10 FILLER PIC X(10).
    >>
    >>Webshpere created the following two methods for TP-IP-LL:
    >>
    >> public short getTp__ip__ll()
    >> {
    >> Short result = (Short)this.basicGet("tp__ip__ll", 0);
    >> return result == null ? 0 : result.shortValue();
    >> }
    >>
    >> public void setTp__ip__ll(short tp__ip__ll)
    >> {
    >> if ((tp__ip__ll < -9999) || (tp__ip__ll > 9999))
    >> throw new IllegalArgumentException(com.ibm.wsif.jca.log.JCAResource.get("IWAA0125E", Short.toString(tp__ip__ll),
    >>"tp__ip__ll"));
    >> this.basicSet("tp__ip__ll", 0, new Short(tp__ip__ll));
    >> }
    >>
    >>In my test class I have the following code:
    >>
    >>request.setTp__ip__ll((short) 75);
    >>
    >>The decimal value 74 equates to the hexidecimal value 4B. When I run this I get the following error:
    >>
    >>javax.resource.ResourceException: ICO0024E: com.ibm.connector2.ims.ico.IMSTCPIPManagedConnection@5039056a.buildInputMsg(Record)
    >>error. Invalid segment length (LL) of 19200 in input object. com.ibm.ims.ico.IMSInputOTMAMsg@574b456a.setAppData(byte[):
    >>
    >>It so happens 19200 is 75 multiplied by 256, or shifted left four times, and appears to be a big-endian/little-endian problem. I
    >>tried using 19200, hoping it would convert the other way, but that value is too large and is rejected. I want to maintain as much
    >>autogeneration as possible without change. What can I change in the binding class so the value 75 is used as 75? Thanks
    >
    >
  • SystemAdmin
    SystemAdmin
    6042 Posts

    Re: ims connect, big endian, swap bits

    ‏2005-07-20T15:34:18Z  
    CAN I HAVE SOME FOLLOW UP FROM IBM ON THIS ISSUE PLEASE?
    >Subject: ims connect, big endian, swap bits
    >Date: Tue, 19 Jul 2005 11:15:40 -0500
    >
    >Sorry for the 132 character width. I needed to paste long strings. Please use fixed font with a wide text window to view.
    >
    >I am doing my first IMS connect service. The request should contain the following:
    >
    >- ----.----1----.----2----.----3----.----4----.----5----.----6----.----7----.----8----.----9----.---10
    >0 IOAREA= . PA2741QG I 019023156
    > 0400DCFFFFDC4C4444FFFFFFFFF444444444444444444444444444444444444444444444444
    > 0B0071274187090000019023156000000000000000000000000000000000000000000000000
    >
    >
    >The COBOL layout is:
    >
    > 05 TP-IP-AREA.
    > 10 TP-IP-LL PIC S9(4) COMP VALUE +0.
    > 10 TP-IP-ZZ PIC S99 COMP.
    > 10 TP-IP-TRANCODE PIC X(9).
    > 10 TP-IP-PFKEY PIC X.
    > 10 TP-FILLER PIC X(4).
    > 10 TP-IP-NAME.
    > 15 TP-IP-NUMBER.
    > 20 TP-IP-NUMBER9 PIC X(9).
    > 20 TP-IP-NUMBER3 PIC X(3).
    > 15 FILLER PIC X(18).
    > 10 TP-IP-TYPE PIC XXX.
    > 10 TP-IP-LINES OCCURS 14 TIMES.
    > 15 FILLER PIC X(53).
    > 15 TP-IP-PROVNO PIC X(12).
    > 15 TP-IP-ASTERISK PIC X.
    > 15 FILLER PIC X(13).
    > 10 FILLER PIC X(10).
    >
    >Webshpere created the following two methods for TP-IP-LL:
    >
    > public short getTp__ip__ll()
    > {
    > Short result = (Short)this.basicGet("tp__ip__ll", 0);
    > return result == null ? 0 : result.shortValue();
    > }
    >
    > public void setTp__ip__ll(short tp__ip__ll)
    > {
    > if ((tp__ip__ll < -9999) || (tp__ip__ll > 9999))
    > throw new IllegalArgumentException(com.ibm.wsif.jca.log.JCAResource.get("IWAA0125E", Short.toString(tp__ip__ll),
    >"tp__ip__ll"));
    > this.basicSet("tp__ip__ll", 0, new Short(tp__ip__ll));
    > }
    >
    >In my test class I have the following code:
    >
    >request.setTp__ip__ll((short) 75);
    >
    >The decimal value 74 equates to the hexidecimal value 4B. When I run this I get the following error:
    >
    >javax.resource.ResourceException: ICO0024E: com.ibm.connector2.ims.ico.IMSTCPIPManagedConnection@5039056a.buildInputMsg(Record)
    >error. Invalid segment length (LL) of 19200 in input object. com.ibm.ims.ico.IMSInputOTMAMsg@574b456a.setAppData(byte[):
    >
    >It so happens 19200 is 75 multiplied by 256, or shifted left four times, and appears to be a big-endian/little-endian problem. I
    >tried using 19200, hoping it would convert the other way, but that value is too large and is rejected. I want to maintain as much
    >autogeneration as possible without change. What can I change in the binding class so the value 75 is used as 75? Thanks
    In article <kkfqd1des7e5ugscrnpblq4b7hg22rqssq@4ax.com>, x12code-del@del-yahoo.com says...
    >
    > CAN I HAVE SOME FOLLOW UP FROM IBM ON THIS ISSUE PLEASE?
    >
    If you need official support from IBM:

    http://www-306.ibm.com/software/support/probsub.html

    this is not an official support channel.

    Juanma Martínez
  • SystemAdmin
    SystemAdmin
    6042 Posts

    Re: ims connect, big endian, swap bits

    ‏2005-07-22T12:55:41Z  
    In article <kkfqd1des7e5ugscrnpblq4b7hg22rqssq@4ax.com>, x12code-del@del-yahoo.com says...
    >
    > CAN I HAVE SOME FOLLOW UP FROM IBM ON THIS ISSUE PLEASE?
    >
    If you need official support from IBM:

    http://www-306.ibm.com/software/support/probsub.html

    this is not an official support channel.

    Juanma Martínez
    >From: Juanma Martinez <juanma_martinez@es.ibm.com>
    >Subject: Re: ims connect, big endian, swap bits
    >Date: Wed, 20 Jul 2005 17:34:18 +0200
    >
    >In article <kkfqd1des7e5ugscrnpblq4b7hg22rqssq@4ax.com>, x12code-del@del-yahoo.com says...
    >>
    >> CAN I HAVE SOME FOLLOW UP FROM IBM ON THIS ISSUE PLEASE?
    >>
    >If you need official support from IBM:
    >
    >http://www-306.ibm.com/software/support/probsub.html
    >
    >this is not an official support channel.
    >--
    >
    >Juanma Martínez

    Thanks. I will try that.
  • SystemAdmin
    SystemAdmin
    6042 Posts

    Re: ims connect, big endian, swap bits

    ‏2005-12-12T03:47:47Z  
    This is not a place for official support although some IBMers read and
    respond here.

    David McDivitt wrote:
    > CAN I HAVE SOME FOLLOW UP FROM IBM ON THIS ISSUE PLEASE?
    >
    >
    >
    >>Subject: ims connect, big endian, swap bits
    >>Date: Tue, 19 Jul 2005 11:15:40 -0500
    >>
    >>Sorry for the 132 character width. I needed to paste long strings. Please use fixed font with a wide text window to view.
    >>
    >>I am doing my first IMS connect service. The request should contain the following:
    >>
    >>- ----.----1----.----2----.----3----.----4----.----5----.----6----.----7----.----8----.----9----.---10
    >>0 IOAREA= . PA2741QG I 019023156
    >> 0400DCFFFFDC4C4444FFFFFFFFF444444444444444444444444444444444444444444444444
    >> 0B0071274187090000019023156000000000000000000000000000000000000000000000000
    >>
    >>
    >>The COBOL layout is:
    >>
    >> 05 TP-IP-AREA.
    >> 10 TP-IP-LL PIC S9(4) COMP VALUE +0.
    >> 10 TP-IP-ZZ PIC S99 COMP.
    >> 10 TP-IP-TRANCODE PIC X(9).
    >> 10 TP-IP-PFKEY PIC X.
    >> 10 TP-FILLER PIC X(4).
    >> 10 TP-IP-NAME.
    >> 15 TP-IP-NUMBER.
    >> 20 TP-IP-NUMBER9 PIC X(9).
    >> 20 TP-IP-NUMBER3 PIC X(3).
    >> 15 FILLER PIC X(18).
    >> 10 TP-IP-TYPE PIC XXX.
    >> 10 TP-IP-LINES OCCURS 14 TIMES.
    >> 15 FILLER PIC X(53).
    >> 15 TP-IP-PROVNO PIC X(12).
    >> 15 TP-IP-ASTERISK PIC X.
    >> 15 FILLER PIC X(13).
    >> 10 FILLER PIC X(10).
    >>
    >>Webshpere created the following two methods for TP-IP-LL:
    >>
    >> public short getTp__ip__ll()
    >> {
    >> Short result = (Short)this.basicGet("tp__ip__ll", 0);
    >> return result == null ? 0 : result.shortValue();
    >> }
    >>
    >> public void setTp__ip__ll(short tp__ip__ll)
    >> {
    >> if ((tp__ip__ll < -9999) || (tp__ip__ll > 9999))
    >> throw new IllegalArgumentException(com.ibm.wsif.jca.log.JCAResource.get("IWAA0125E", Short.toString(tp__ip__ll),
    >>"tp__ip__ll"));
    >> this.basicSet("tp__ip__ll", 0, new Short(tp__ip__ll));
    >> }
    >>
    >>In my test class I have the following code:
    >>
    >>request.setTp__ip__ll((short) 75);
    >>
    >>The decimal value 74 equates to the hexidecimal value 4B. When I run this I get the following error:
    >>
    >>javax.resource.ResourceException: ICO0024E: com.ibm.connector2.ims.ico.IMSTCPIPManagedConnection@5039056a.buildInputMsg(Record)
    >>error. Invalid segment length (LL) of 19200 in input object. com.ibm.ims.ico.IMSInputOTMAMsg@574b456a.setAppData(byte[):
    >>
    >>It so happens 19200 is 75 multiplied by 256, or shifted left four times, and appears to be a big-endian/little-endian problem. I
    >>tried using 19200, hoping it would convert the other way, but that value is too large and is rejected. I want to maintain as much
    >>autogeneration as possible without change. What can I change in the binding class so the value 75 is used as 75? Thanks
    >
    >
    hi David,
    what about yr question, did u get the right solution? i happen to the question same to you, this blocks us for two week.

    many thanks
    durren
  • SystemAdmin
    SystemAdmin
    6042 Posts

    Re: ims connect, big endian, swap bits

    ‏2006-06-23T14:47:16Z  
    Has anyone found a solution to this problem?

    Thanks,
    William

    William_McKibben@dcf.state.fl.us
  • SystemAdmin
    SystemAdmin
    6042 Posts

    Invalid segment length (LL) of [16448] in input object

    ‏2008-08-04T11:05:44Z  
    Hi David,

    I also got stucked with this problem for 1 week.Could you please tell me how you resolved this issue.

    I can depict my entire problem here.
    In cobol code we have declared ll as like this.

    05 LL PIC S9(4) COMP.
    05 ZZ PIC XX.

    Using J2C Connector tools for this cobol programs(input and output records) total 5 fils are generated. Those are
    InputRecord.java,OutputRecord.java,
    java beans:Interface1.java,Interface1Impl.java
    Command Bean: RetrieveDetails.java.

    On this inputrecord object setLl() is invoked.

    InputRecord inputRocord = InputRecord();
    inputrecord.setL1((short) 1804);

    RetrieveDetails commandBean= RetrieveDetails();

    commandBean.set(inputrecord);
    commandBean.execute();
    Here When i execute the commandbean bean Invalid Segment error..

    Can anyone help me out please..

    if you drop a mail also to vinayakavara@gmail.com would be better.

    Thanks in advance.
    venkat.
  • SystemAdmin
    SystemAdmin
    6042 Posts

    Re: Invalid segment length (LL) of [16448] in input object

    ‏2008-08-11T12:50:02Z  
    Hi David,

    I also got stucked with this problem for 1 week.Could you please tell me how you resolved this issue.

    I can depict my entire problem here.
    In cobol code we have declared ll as like this.

    05 LL PIC S9(4) COMP.
    05 ZZ PIC XX.

    Using J2C Connector tools for this cobol programs(input and output records) total 5 fils are generated. Those are
    InputRecord.java,OutputRecord.java,
    java beans:Interface1.java,Interface1Impl.java
    Command Bean: RetrieveDetails.java.

    On this inputrecord object setLl() is invoked.

    InputRecord inputRocord = InputRecord();
    inputrecord.setL1((short) 1804);

    RetrieveDetails commandBean= RetrieveDetails();

    commandBean.set(inputrecord);
    commandBean.execute();
    Here When i execute the commandbean bean Invalid Segment error..

    Can anyone help me out please..

    if you drop a mail also to vinayakavara@gmail.com would be better.

    Thanks in advance.
    venkat.
    I think both of you have the wrong length for the LL field - IIUC it should be PIC S9(2) COMP, not PIC S9(4) COMP. At least, that's what the COBOL source DFSSAM7 for the IMS Connect sample contains.
  • SystemAdmin
    SystemAdmin
    6042 Posts

    Re: Invalid segment length (LL) of [16448] in input object

    ‏2008-08-12T14:29:47Z  
    I think both of you have the wrong length for the LL field - IIUC it should be PIC S9(2) COMP, not PIC S9(4) COMP. At least, that's what the COBOL source DFSSAM7 for the IMS Connect sample contains.
    Sorry, my previous comment about LL being Pic S9(2) instead of S9(4) was wrong. I believe both map will map to short (two byte) integers.

    My problem with LL values turned out to be that the adapter appears to demand the segment length EQUAL TO the total length of the data I'm sending to the adapter (including the LL field and the ZZ filler thereafter). The documentation for the message ICO0024E says the LL value should be non-zero and not more than the length of the data, but I tried with lower values and got the same message. Only the exact same value as the total data length appears to work.

    You do seem to have a big/little-endian problem. I had the same problem, but it was caused by application coding error, which was converting string data to EBCDIC, but not converting integer data to big-endian (nor in fact floats to IBM z-Series format, which is not IEEE).
  • SystemAdmin
    SystemAdmin
    6042 Posts

    Re: ims connect, big endian, swap bits

    ‏2008-08-30T10:27:11Z  
    I'm doing IMS Connect on IMS Transaction written in PL/I Language (Develop on RAD 7) and get the message 'Invalid segment length (LL)'. I try to change segment length in java code but it doesn't work. Anyway I did successfully on IMS Transaction written in COBOL Language. Please help me.
  • VenuGopalValiveti
    VenuGopalValiveti
    1 Post

    Re: ims connect, big endian, swap bits

    ‏2010-04-06T22:01:34Z  
    Hi i also got stuck in this issue now.

    My COBOL Copy book does not have fields LL & ZZ.

    01 DASHF-YTRNI-AREA.
    03 DASHF-YHDRI-AREA
    03 DASHF-YHDRI-AREA.

    05 DASHF-YHDRI-IMS-TRAN-CD PIC X(08).
    05 DASHF-YHDRI-CONSUMER-ID PIC X(08).
    05 DASHF-YHDRI-LOCATION-ID PIC X(08).

    05 DASHF-YHDRI-FUNCTION-CODE PIC X(08).
    05 DASHF-YHDRI-VERSION-ID PIC 9(02).
    05 DASHF-YHDRI-CHANNEL-CAT PIC X(04).
    05 DASHF-YHDRI-SOURCE PIC X(08).

    05 DASHF-YHDRI-ACCESS-CARD-NUM PIC X(19).
    05 DASHF-YHDRI-LOGON-ID PIC X(08).

    05 DASHF-YHDRI-OVRD-GROUP.
    10 DASHF-YHDRI-OVRD-ID PIC X(08).
    10 DASHF-YHDRI-OVRD-LVL PIC X(03).
    10 DASHF-YHDRI-OVRD-FIELD PIC X(08).
    10 DASHF-YHDRI-OVRD-RESOURCE PIC X(20).
    05 FILLER PIC X(88).

    03 DASHF-REQ-ACTV-DATA.

    05 DASHF-REQ-ACCT-GROUP.
    10 DASHF-REQ-BANK-NUM PIC 9(03).
    10 DASHF-REQ-BR-OF-ACCT PIC 9(05).
    10 DASHF-REQ-ACCT-NUM PIC 9(07).

    05 DASHF-REQ-ACTV-BLK-ID PIC X(08).

    05 DASHF-REQ-ACTV-BLK-VSN-ID PIC 9(02).

    05 DASHF-REQ-ACTV-BLK-DTL.
    10 DASHF-REQ-ACTV-FILTER-IND PIC X(01).

    10 DASHF-REQ-ACTV-FILTER-CAT PIC X(08).

    10 DASHF-REQ-ACTV-FILTER-SUBCT PIC X(35).

    10 DASHF-REQ-ACTV-STATE PIC X(01).

    10 DASHF-REQ-ACTV-LIST-NUM PIC 9(03).

    10 DASHF-REQ-ACTV-DETAIL.
    15 DASHF-REQ-ACTV-START-DT PIC 9(08).
    15 DASHF-REQ-ACTV-END-DT PIC 9(08).
    15 DASHF-REQ-ACTV-LAST-DT PIC 9(08).
    15 DASHF-REQ-ACTV-LAST-CPU-DT PIC 9(05).
    15 DASHF-REQ-ACTV-LAST-CPU-TS PIC 9(12).

    Using RAD 7.0.07 with J2C features i was able to generate J2C Bean along with Data binding files.

    When i populate the request & tried to execute then i am getting this issue -

    javax.resource.ResourceException: ICO0024E: com.ibm.connector2.ims.ico.IMSTCPIPManagedConnection@f5e0f5e.buildInputMsg(Record) error. Invalid segment length (LL) of -7228 in input object. com.ibm.ims.ico.IMSInputOTMAMsg@7e827e82.setAppData(byte[): com.ibm.ims.ico.IMSConnResourceException]
    at com.ibm.connector2.ims.ico.IMSManagedConnection.buildInputMsg(IMSManagedConnection.java:448)
    at com.ibm.connector2.ims.ico.IMSTCPIPManagedConnection.callSendRecv(IMSTCPIPManagedConnection.java:302)
    at com.ibm.connector2.ims.ico.IMSManagedConnection.call(IMSManagedConnection.java:1265)
    at com.ibm.connector2.ims.ico.IMSConnection.call(IMSConnection.java:219)
    at com.ibm.connector2.ims.ico.IMSInteraction.execute(IMSInteraction.java:650)
    at com.td.wca.das.fa.WCA_DAS_FinancialActivityImpl.invoke(WCA_DAS_FinancialActivityImpl.java:131)
    at com.td.wca.das.fa.WCA_DAS_FinancialActivityImpl.execute(WCA_DAS_FinancialActivityImpl.java:47)
    at com.td.wca.das.fa.test.VenuTest.main(VenuTest.java:59)
    ICO0024E: com.ibm.connector2.ims.ico.IMSTCPIPManagedConnection@f5e0f5e.buildInputMsg(Record) error. Invalid segment length (LL) of -7228 in input object. com.ibm.ims.ico.IMSInputOTMAMsg@7e827e82.setAppData(byte[): com.ibm.ims.ico.IMSConnResourceException]

    How to debug this issue? Any help is highly appreciated.

    Regards
    Venu Gopal Valiveti