Ivan Ng

Forum Replies Created

Viewing 10 replies – 1 through 10 (of 10 total)
  • Author
    Replies
  • in reply to: Unable to run process even after running hcidbinit #60105
    Ivan Ng
    Participant

      Robert, thx, while that does not get the site in problem to work, your list is very useful for future issues.

      in reply to: How to prioritize the Command Threads #60067
      Ivan Ng
      Participant

        Russ, Thank you for going along with this thread.  Have tried the TCP/IP before we tried translation throttling.  I believe that with both methods used, the performance would be much faster.  But we have decided against it becuase it will make tracing the message miuch more difficult.

        If a message failed at the outbound, we will use DB Administrator to get the source MID of the message and use SMAT to get the raw message back.  With this setup we won’t be able to trace back to the source message.

        in reply to: How to prioritize the Command Threads #60065
        Ivan Ng
        Participant

          I don’t know that cross-process routing is slow.  Thanks for pointing that out.  But since my outbound is java upoc and is cpu intensive as well, so I am not so sure if it is beneficial to put it in the same process as the inbound thread.

          As for the ACK, I think that’s a good idea, but it doesn’t work in my case because the inbound messages is sent to two outbound threads and some of the messages will get dropped during translation.

          in reply to: How to prioritize the Command Threads #60063
          Ivan Ng
          Participant

            By the way, it would also be nice if someone can shed some light on how to further prioritize the command thread over the translation.

            Even with throttling set to (1, 1, 50) which means that only 1 message is translated everytime, there are still lots of messages left in the post-transaltion queue.  Is there any way to force the command thread to move those messages to the outbound thread prior to translating more messages?  The outbound thread is in another process, so having those messages moved to the outbound thread first will speed things up.

            I am sure that the outbound thread is not saturated yet since the message out count increases faster when it is being feed with messages continuously than when most messages are stuck in the post-translation queue.  By the way, it never gets any pending messages.

            in reply to: How to prioritize the Command Threads #60062
            Ivan Ng
            Participant

              That’s what I have just figured out as well.

              However, it seem that I did not pay attention to the true problem.  The true problem is that the outbound thread is slower than the inbound thread.  As such, no matter what I do there will be a large number of messages being queued in the recovery db unless I choose a very long read interval for the inbound thread.  In any case, it would be very difficult to optimize for the maximum speed.

              It would be ideal if cloverleaf can “wait” on the inbound thread whenever it has nothing to do.

              in reply to: HRL Configuration #58281
              Ivan Ng
              Participant

                James,

                You can use a repeat while segmentName.fieldName to determine if the message consists of a certain frl.

                You can use a condition on previousSegmentName.fieldName to determine if a message consists of a certain frl based on the existence of a previous segment.

                These allows us to parse the following structure:

                      HL

                      [TRN]

                      [NM1]

                      [EQ]

                      [AMT]

                      [III]

                      [REF]

                      [N3]

                      [N4]

                      [PER]

                      [PRV]

                      [DMG]

                      [INS]

                      [DTP]

                by doing

                Top.hrl

                HL Segment (with repeat while HL.Field6-8 is ‘HL ‘) pointing to HL.frl

                Group Segment (with condition HL.Field6-8 is ‘HL ‘) pointing to Group.hrl

                Group.hrl

                TRN Segment (with repeat while TRN.Field6-8 is ‘TRN’) pointing to TRN.hrl

                .

                .

                .

                I have trouble adding another layer of repeatition to handle the outer loop though.  I will get back to this board if I have any new insights.  And please let me know if you found out anything.  Thanks.

                in reply to: HRL Configuration #58279
                Ivan Ng
                Participant

                  While I don’t fully understand the sample data and your message structure, I suspect that there could be a fundamental problem.

                  Assuming that the [TRN], [NM1] are optional segments, when Cloverleaf is parsing a message without TRN but has a NM1 segment, how would it be possible for Cloverleaf to recognize what it is seeing is an NM1 instead of a TRN?

                  Please also note that the ‘Condition Options’ determines the presence/absence of a segment using a field from a previous segment.

                  I would expect a very complicated and intelligent setup in order for this to work if it is at all possible.  It would be nice if you can provide a more detailed view on your sample data as well as your message structure.  For instance, does every segment ends with a new line character?  Does the 6-8 characters always presence regardless of the presence of the segment?

                  in reply to: Unknown Error Message #58292
                  Ivan Ng
                  Participant

                    What is the exact configuration of your outbound thread?

                    in reply to: tough question #57815
                    Ivan Ng
                    Participant

                      Both the setString and the setObject function requires the name of the field.

                      in reply to: tough question #57813
                      Ivan Ng
                      Participant

                        Dear Greg,

                        Thank you very much for your answer.

                        I have not tried that but that would not work because if the field is placed on the input list instead of the output list, the xpm object would not have the field in its output list and the value cannot be set using the setSting function.  I guess we can put the same field in both the input list and the output list to get this to work.  But I wish to do it more elegantly.

                      Viewing 10 replies – 1 through 10 (of 10 total)