8 Replies Latest reply: Sep 4, 2012 10:27 PM by Deb_1 RSS

    Extra char appears string to FML fails. - Urgent

    Deb_1
      We are facing an issue we have not scene before.
      Its between OSB -> Tuxedo WTC integration.

      We being the team Supporting Tuxedo related Applications can see :

      Whenever we get a message with 00 at the end it gets successfully processed

      12:45:06.0747:17687: >>> [DUMP] Call the remote service (len=210) >>>
      12:45:06.0747:17687: 0000 30 30 30 30 30 30 30 30 30 30 30 31 2d 4a 55 4e 2d 32 000000000001-JUN-2
      12:45:06.0747:17687: 0012 30 31 32 31 32 3a 34 35 3a 30 35 20 20 20 20 20 20 50 01212:45:05 P
      12:45:06.0747:17687: 0024 49 4e 47 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ING
      12:45:06.0747:17687: 0036 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
      12:45:06.0747:17687: 0048 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
      12:45:06.0747:17687: 005a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
      12:45:06.0747:17687: 006c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
      12:45:06.0747:17687: 007e 20 20 20 20 46 4d 54 2d 45 52 52 20 31 30 30 34 20 52 FMT-ERR 1004 R
      12:45:06.0747:17687: 0090 45 51 3a 4f 77 6e 65 72 20 66 69 65 6c 64 20 69 73 20 EQ:Owner field is
      12:45:06.0747:17687: 00a2 69 6e 76 61 6c 69 64 20 20 20 20 20 20 20 20 20 20 20 invalid
      12:45:06.0747:17687: 00b4 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
      12:45:06.0747:17687: 00c6 20 20 20 20 20 20 20 20 20 20 20 20 *00* .

      but when we get a message with 01 at the end it fails :

      13:41:04.0489:24216: >>> [DUMP] Call the move data function (len=210) >>>
      13:41:04.0489:24216: 0000 30 30 30 30 30 30 30 30 30 30 32 31 2d 41 55 47 2d 32 000000000021-AUG-2
      13:41:04.0489:24216: 0012 30 31 32 31 35 3a 34 30 3a 35 38 20 20 20 20 20 20 50 01215:40:58 P
      13:41:04.0489:24216: 0024 49 4e 47 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ING
      13:41:04.0489:24216: 0036 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
      13:41:04.0489:24216: 0048 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
      13:41:04.0489:24216: 005a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
      13:41:04.0489:24216: 006c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
      13:41:04.0489:24216: 007e 20 20 20 20 46 4d 54 2d 45 52 52 20 31 30 30 34 20 52 FMT-ERR 1004 R
      13:41:04.0489:24216: 0090 45 51 3a 4f 77 6e 65 72 20 66 69 65 6c 64 20 69 73 20 EQ:Owner field is
      13:41:04.0489:24216: 00a2 69 6e 76 61 6c 69 64 20 20 20 20 20 20 20 20 20 20 20 invalid
      13:41:04.0489:24216: 00b4 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
      13:41:04.0489:24216: 00c6 20 20 20 20 20 20 20 20 20 20 20 20 *01*


      When we asked the OSB Application Supporting teams they told they are just sending the message like below without 00 or 01 at their end:

      13:41:04.0489:24216: 0000 30 30 30 30 30 30 30 30 30 30 32 31 2d 41 55 47 2d 32 000000000021-AUG-2
      13:41:04.0489:24216: 0012 30 31 32 31 35 3a 34 30 3a 35 38 20 20 20 20 20 20 50 01215:40:58 P
      13:41:04.0489:24216: 0024 49 4e 47 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ING
      13:41:04.0489:24216: 0036 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
      13:41:04.0489:24216: 0048 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
      13:41:04.0489:24216: 005a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
      13:41:04.0489:24216: 006c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
      13:41:04.0489:24216: 007e 20 20 20 20 46 4d 54 2d 45 52 52 20 31 30 30 34 20 52 FMT-ERR 1004 R
      13:41:04.0489:24216: 0090 45 51 3a 4f 77 6e 65 72 20 66 69 65 6c 64 20 69 73 20 EQ:Owner field is
      13:41:04.0489:24216: 00a2 69 6e 76 61 6c 69 64 20 20 20 20 20 20 20 20 20 20 20 invalid
      13:41:04.0489:24216: 00b4 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
      13:41:04.0489:24216: 00c6 20 20 20 20 20 20 20 20 20 20 20 20

      I am unable to understand is it Tuxedo which adds the character 00 or 01 and why?

      The message what reached our end is a fixed length String (210) which needs to get populated in an FML buffer and need to be send to an Unisys system via OSITP.

      Below is the headerfile generated compiling the view file :

      char ISPEC[5];
      char GLB_SOURCE;
      char TRANNO[6];
      char INPUT_DATE[7];
      char ACTMTH[4];
      char MXIMSG[10];
      char MSGDTE[11];
      char MSGTME[8];
      char OWNCDE[3];
      char LOCCDE[3];
      char REFNBR[12];
      char MFRDTE[11];
      char PT_NBR[25];
      char SHFDTE[11];
      char RCVNBR[10];
      char RCVDTE[11];
      char SERNBR[15];
      char REM401[40];
      char REM402[40];

      Please help.
        • 1. Re: Extra char appears string to FML fails. - Urgent
          Bobfinan - Oracle-Oracle
          Hi,
          I think you are doing string operations instead of byte operations. You say that it is a fixed length string of 210 but the 01 and 00 are byte numbers 211.
          Your program is probably making the assumption that unused bytes are initialized to NULL (==00) and then running string operations on the received buffer
          (which need a terminating NULL). You should be able to modify your program to read exaclty 210 characters of the received buffer.

          I am not sure though about the "210" character count you emphasize. The characters in the header you note total 233 not 210.
          When you say it is a view header file do you mean a Tuxedo VIEW or VIEW32? (Do you know what the XML string looks like that is sent to WTC by OSB?)
          Regards,
          Bob Finan
          • 2. Re: Extra char appears string to FML fails. - Urgent
            Deb_1
            This is a sample error message :
            This is the XML send to WTC :

            01 Sep 2012 12:09:29,851 INFO ComponentReceiptErrorNotificationService_V1: [PipelinePairNode1, PipelinePairNode1_request, Error response received from EI, REQUEST] QISF.ComponentReceiptErrorNotificationService_V1: Component_receipt_response, error response received from EI<soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
            <********************* xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <MessageIdentifier>13391</MessageIdentifier>
            <MessageDeliveryDate>01-SEP-2012</MessageDeliveryDate>
            <MessageDeliveryTime>12:09:25</MessageDeliveryTime>
            <Owner>SPL</Owner>
            <Location>SDC</Location>
            <PONumber>QS12236016</PONumber>
            <PartNumber>E21368000-1</PartNumber>
            <ManufacturedDate/>
            <ShelfLifeDate>07-JUN-2022</ShelfLifeDate>
            <ReceiptNumber>122450189</ReceiptNumber>
            <ReceiptedDate>01-SEP-2012</ReceiptedDate>
            <SerialNumber>0765E21368</SerialNumber>
            <Remarks>ERROR: Duplicate Serial Number</Remarks>
            </*********************>
            </soapenv:Body>
            01 Sep 2012 12:09:29,851 INFO ComponentReceiptErrorNotificationService_V1: [Route to Supply, null, null, REQUEST] QISF.ComponentReceiptErrorNotificationService_V1: Component_receipt error response routed to Supply<soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
            <********************* xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <MessageIdentifier>13391</MessageIdentifier>
            <MessageDeliveryDate>01-SEP-2012</MessageDeliveryDate>
            <MessageDeliveryTime>12:09:25</MessageDeliveryTime>
            <Owner>SPL</Owner>
            <Location>SDC</Location>
            <PONumber>QS12236016</PONumber>
            <PartNumber>E21368000-1</PartNumber>
            <ManufacturedDate/>
            <ShelfLifeDate>07-JUN-2022</ShelfLifeDate>
            <ReceiptNumber>122450189</ReceiptNumber>
            <ReceiptedDate>01-SEP-2012</ReceiptedDate>
            <SerialNumber>0765E21368</SerialNumber>
            <Remarks>ERROR: Duplicate Serial Number</Remarks>
            </*********************>
            </soapenv:Body>

            The MFL transformation gives a dump like this :

            00000000:     30 30 30 30 30 31 33 33 37 33 30 33 2D 53 45 50     000001337303-SEP
            00000010:     2D 32 30 31 32 33 3A 34 33 3A 31 38 20 51 46 41     -20123:43:18 QFA
            00000020:     53 44 43 56 37 39 38 35 36 30 20 20 20 20 20 30     SDCV798560     0
            00000030:     31 33 32 41 42 55 20 20 20 20 20 20 20 20 20 20     132ABU          
            00000040:     20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                     
            00000050:     20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 32                   12
            00000060:     56 37 39 38 35 36 20 20 30 33 2D 53 45 50 2D 32     V79856  03-SEP-2
            00000070:     30 31 32 53 45 52 49 41 4C 37 20 20 20 20 20 20     012SERIAL7      
            00000080:     20 20 45 52 52 4F 52 3A 20 49 6E 76 61 6C 69 64       ERROR: Invalid
            00000090:     20 50 61 72 74 20 43 6C 61 73 73 20 2D 20 42 41      Part Class - BA
            000000a0:     54 43 48 20 20 20 20 20 20 20 20 20 20 20 20 20     TCH             
            000000b0:     20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                     
            000000c0:     20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                     
            000000d0:     20 20 .. .. .. .. .. .. .. .. .. .. .. .. .. ..        ..............

            Hence we got this below in our tuxedo Application Log:

            12:09:29.0986:3421: >>> [DUMP] svc=MXRSUPP01, type=REQ (len=210) >>>
            12:09:29.0986:3421: 0000 30 30 30 30 30 31 33 33 39 31 30 31 2d 53 45 50 2d 32 000001339101-SEP-2
            12:09:29.0986:3421: 0012 30 31 32 31 32 3a 30 39 3a 32 35 53 50 4c 53 44 43 51 01212:09:25SPLSDCQ
            12:09:29.0986:3421: 0024 53 31 32 32 33 36 30 31 36 20 20 45 32 31 33 36 38 30 S12236016 E213680
            12:09:29.0986:3421: 0036 30 30 2d 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00-1
            12:09:29.0986:3421: 0048 20 20 20 20 20 20 20 20 20 20 20 30 37 2d 4a 55 4e 2d 07-JUN-
            12:09:29.0986:3421: 005a 32 30 32 32 31 32 32 34 35 30 31 38 39 20 30 31 2d 53 2022122450189 01-S
            12:09:29.0986:3421: 006c 45 50 2d 32 30 31 32 30 37 36 35 45 32 31 33 36 38 20 EP-20120765E21368
            12:09:29.0986:3421: 007e 20 20 20 20 45 52 52 4f 52 3a 20 44 75 70 6c 69 63 61 ERROR: Duplica
            12:09:29.0986:3421: 0090 74 65 20 53 65 72 69 61 6c 20 4e 75 6d 62 65 72 20 20 te Serial Number
            12:09:29.0986:3421: 00a2 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
            12:09:29.0986:3421: 00b4 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
            12:09:29.0986:3421: 00c6 20 20 20 20 20 20 20 20 20 20 20 20 *01* .

            I am surprised where from this *01*/*00* appears at the end?
            Is this 01/00 added by Tuxedo or OSB Business service ?How can we change it to 00?

            Edited by: 835542 on Sep 3, 2012 11:30 AM

            Edited by: 835542 on Sep 3, 2012 11:38 AM
            • 3. Re: Extra char appears string to FML fails. - Urgent
              Todd Little-Oracle
              Hi,

              Can you post the definition of the Tuxedo business service as defined in OSB? You mention MFL which concerns me as MFL should not be needed to call a Tuxedo service. Are you using MFL and if so, how/why is it being used?

              Regards,
              Todd Little
              Oracle Tuxedo Chief Architect
              • 4. Re: Extra char appears string to FML fails. - Urgent
                Deb_1
                Hi Todd,

                OSB is receiving a XML from end system it is converting it into a fixed length string by a MFL conversion.
                At OSB, The business service is of Messaging type with request and response configured with an MFL and the buffer type is CARRAY.

                That String is being send to Tuxedo Service via WTC.

                However,today we noticed this case :

                I restarted our tuxedo Server group.
                We asked OSB guys to trigger messages from OSB test console.
                The message came with 00 at our end and got successfully processed.
                We asked them to trigger the message again ,this time it came with 01 at the end and did not get processed.

                I again restarted and asked them to trigger the message once more.
                It appeared with 00 at end and got processed.

                It seems every first message is getting processed in the test system.
                Then it is getting struck.

                Any idea?

                Regards,
                Deb

                Edited by: Deb_1 on Sep 4, 2012 2:31 PM
                • 5. Re: Extra char appears string to FML fails. - Urgent
                  Deb_1
                  Changed our code , used CARRAY typed buffer instead of STRING ops,and it became fine.
                  However,still not sure why it was behaving like that, when it was STRING.
                  Whats the difference between CARRAY and STRING?
                  • 6. Re: Extra char appears string to FML fails. - Urgent
                    Deb_1
                    How can we do this task without MFL?is there any other way?

                    Edited by: Deb_1 on Sep 4, 2012 4:35 PM
                    • 7. Re: Extra char appears string to FML fails. - Urgent
                      Todd Little-Oracle
                      Hi,

                      I'm not sure what you are using MFL for. The Tuxedo Transport is capable of converting XML to certain buffer types without the use of MFL. Specifically if you want FML32, just configure the business service for FML32 and the transport will convert the XML to FML32. Alternatively you could use the XML buffer type.

                      The difference between CARRAY and STRING is that STRING buffers are null terminated like C strings. CARRAY is just an opaque bunch of bytes with an associated length.

                      My guess is the MFL conversion is adding the extra character, although I have no idea why as I've never used MFL.

                      Regards,
                      Todd Little
                      Oracle Tuxedo Chief Architect
                      • 8. Re: Extra char appears string to FML fails. - Urgent
                        Deb_1
                        Thanks for all your help Todd and Bob.
                        Issue is solved now.

                        Regards,
                        Deb