US20080222650A1 - Method And System For Recovering Stranded Outbound Messages - Google Patents

Method And System For Recovering Stranded Outbound Messages Download PDF

Info

Publication number
US20080222650A1
US20080222650A1 US12/123,796 US12379608A US2008222650A1 US 20080222650 A1 US20080222650 A1 US 20080222650A1 US 12379608 A US12379608 A US 12379608A US 2008222650 A1 US2008222650 A1 US 2008222650A1
Authority
US
United States
Prior art keywords
message
program
messages
code
middleware
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US12/123,796
Other versions
US8255925B2 (en
Inventor
James E. Scurlock, Jr.
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AT&T Intellectual Property I LP
Original Assignee
AT&T Delaware Intellectual Property Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by AT&T Delaware Intellectual Property Inc filed Critical AT&T Delaware Intellectual Property Inc
Priority to US12/123,796 priority Critical patent/US8255925B2/en
Publication of US20080222650A1 publication Critical patent/US20080222650A1/en
Assigned to AT&T DELAWARE INTELLECTUAL PROPERTY, INC. reassignment AT&T DELAWARE INTELLECTUAL PROPERTY, INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: AT&T BLS INTELLECTUAL PROPERTY, INC., AT&T INTELLECTUAL PROPERTY, INC., BELLSOUTH INTELLECTUAL PROPERTY CORPORATION (CHANGED TO)
Assigned to AT&T INTELLECTUAL PROPERTY I, L.P. reassignment AT&T INTELLECTUAL PROPERTY I, L.P. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: AT&T DELAWARE INTELLECTUAL PROPERTY, INC.
Priority to US13/558,011 priority patent/US8695016B2/en
Application granted granted Critical
Publication of US8255925B2 publication Critical patent/US8255925B2/en
Priority to US14/182,018 priority patent/US9286147B2/en
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality

Definitions

  • the present invention relates to queuing systems for messages delivered between two software applications.
  • a source program sends a message to a destination external to the source program.
  • An exit routine within the source program recognizes that the message is bound for a destination outside of the source program.
  • the externally bound message is routed to message queue in a middleware program. This middleware program acts as a bridge between the source program and a separate independent destination program.
  • Errors can occur during the routing of these outbound messages from the source program through the middleware program, and instead of being routed through the middleware, the outbound messages are misdirected or stranded in default message queues internal to the source program. For example, these messages are sent to a destination that, although originally valid for outward bound messages, becomes invalid or is no longer recognized as directed to the middleware for routing outside the source application. Once stranded in an internal default message queue, these messages are effectively “lost” and are never recovered or delivered to the destination program.
  • the source program does not contain a utility or routine to recover these misdirected messages. In fact, the source program may not even recognize that the messages are lost and may not be able to determine the location of the lost messages.
  • a method is needed to identify messages bound for delivery outside of a source program but misdirected and not delivered. What is needed are suitable methods that would identify the misdirected messages, extract the messages from the location to which the messages were improperly delivered and re-route or re-queue these messages through the middleware.
  • Embodiments of the present invention include a method, computer executable code and programmed computer system for recovering a plurality of messages stranded in a destination internal to a first computer executable program and intended for delivery to a second computer executable program through a middleware computer executable program.
  • An embodiment of the present invention recovers a plurality of component messages stranded in a destination or location internal to the first program and routes these recovered messages to a message queue in a middleware software program for delivery to the second computer program to which these stranded messages should have been delivered originally.
  • the recovery method includes extracting a plurality of component messages from the destination internal to the first program, reassembling the logs records as necessary to create the plurality of stranded messages and saving the messages to a stranded message file on an appropriate computer readable storage medium.
  • the operator utilizing a method of the present invention can select the middleware to be used and can identify the message queue within the selected middle for routing of the recovered messages. These selections are provided to the method of the present invention as inputs, for example as input parameters from a user to the computer executable code.
  • all of the messages or entries in the stranded message file are read. During reading, the original destination of the message is determined, and the message is reformatted for delivery to the middleware message queue and ultimate delivery to the original destination.
  • the method of the present invention closes the queue and disconnects from the middleware program. If desired, reports detailing the results of the recovery process can be generated and outputted.
  • the method of the present invention provides the advantages and benefits of recovering and redelivering stranded messages that would otherwise be unrecoverable. Therefore, these messages, which can include large data files, do not have to be recreated.
  • FIG. 1 is a flow chart illustrating an embodiment of a method for recovering lost messages according to the present invention.
  • a method according to the present invention recovers at least one and preferably a plurality of messages stranded in a destination internal to a first computer executable program and intended for original delivery to a second computer executable program. Delivery of the stranded messages is through a middleware type computer executable program.
  • the first and second computer executable programs are any computer program containing computer executable code stored on a computer readable storage medium and executable by a logical processor. These computer programs can operate on any one of a number of computer platforms including DOS, Windows, UNIX, VAX, and mainframe platforms. In one embodiment, the platform is an IBM mainframe.
  • the first and second computer executable programs can be the same program, can be different programs, can be on the same platform and can be on different platforms. Suitable first and second computer programs include Information Management System (IMS) programs, commercial available from IBM Corporation of Armonk, N.Y.
  • IMS Information Management System
  • the middleware program is selected to serve as a bridge between the first computer executable program and the second computer executable program for routing messages between the two programs.
  • the middleware program contains at least one message queue for receiving messages, such as data or other types of files, that are destined from the first program to the second program.
  • Suitable middleware programs can connect to and interface with the programs and platforms of the first and second computer programs.
  • the middleware computer program is MQSeries® or Websphere MQ® commercially available from IBM Corporation of Armonk, N.Y.
  • An embodiment of the present invention includes a computer executable code for executing the steps of the method.
  • the computer executable code utilizes algorithms readily available and known to one of skill in the art and can be written in any suitable language, for example assembler language, based upon compatibility with the platforms and languages of the first computer program, the second computer program and the middleware program.
  • Another embodiment of the present invention includes a computer system or programmed computer for executing a method and computer executable code according to the present invention. Any conventional computer system available and known to one of skill in the art can be used in this embodiment and should be compatible for reading and executing the computer executable code embodying a method according to the present invention.
  • the programmed computer includes a computer readable memory having at least one region to store the computer executable program code that embodies the method of the present invention and a processor for executing the program code stored in that memory. Suitable memory includes Random Access Memory, Compact Disc Read Only Memory, a hard-disk type drive, a tape drive, a floppy disk type drive, and combinations thereof.
  • the recovery program extracts at least one stranded message from a memory destination or address that represents a location internal to the first program 1 .
  • the recovery program extracts a plurality of stranded messages.
  • the recovered messages are not always in the form of complete messages but may have been broken down into a plurality of components or packets. For example, because the original message was not or could not be delivered, that message is recorded into a log and can be broken into the components or packets before it is entered into the log.
  • the components or packets include the information necessary for the routing and reassembly of each component, for example in a header associated with that component.
  • the recovery program obtains this destination and reassembly information, for example, through the record log of the messages stored in the location internal to the first program. Therefore, in another embodiment, the recovery program extracts a plurality of component messages or record logs from the destination internal to the first program. Each component message contains at least a portion of a message intended for delivery from the first program to the second program, routing information and information necessary for the reassembly of component message at the message destination. The recovery program reassembles the component messages as necessary to recreate the original messages 2 by making the necessary associations among the numerous component messages to create complete messages.
  • the recovery program creates a stranded message file 3 on a memory medium and in a memory location accessible by the recovery program. In one embodiment, this memory location and medium within the programmed computer containing the recovery program.
  • the recovery program saves the extracted stranded messages to the stranded message file.
  • the recovery program extracts the messages and message components, reassembles of the message components, creates the stranded message file and saves the messages to the stranded message using existing tools, such as software program tools, created for use with the first computer program. Suitable existing tools include Queue Control Facility, commercially available from IBM Corporation of Armonk, N.Y.
  • the recovery program can use existing software tools to carry out these steps by containing computer executable code that acts as a call to the software tools.
  • the user or party attempting to recover stranded messages from the first program selects a middleware program to be used for delivery of the recovered messages 4 and further identifies at least one message queue within the selected middleware for receipt and routing of the recovered messages 5 .
  • the message queue represents a memory location in a computer readable memory medium that is accessible and readable by the middleware and provides a temporary location for receipt of messages to be forwarded to the second program. In one embodiment, this memory location and medium are disposed within the programmed computer containing the recovery program.
  • the user can select the middleware program and can identify the message queue as, for example, inputs to the computer executable code embodying the present method. Inputting the user's selections is facilitated by data entry prompts and graphical interfaces provided by the recovery program.
  • Suitable data entry prompts and graphical interfaces are known and available in the art.
  • a separate recovery program is developed for interfacing with each one of a plurality of middleware programs.
  • the user selects a middleware program by choosing and running the recover program developed for the desired middleware program.
  • the recovery program Based upon the selected middleware and the identified message queue, the recovery program connects to the middleware and opens the queue 6 by accessing the appropriate location on the computer readable storage medium in which the stranded message file was saved.
  • the recovery program reads a recovered message from the stranded message file 7 . In one embodiment, the entire contents of each recovered message or message component is read. In another embodiment, only a header associated with each recovered message or message component containing the original destination information is read.
  • the recovery program confirms that each recovered message was intended for a location external to the first program and identifies that destination 8 .
  • the message queue receives that message and holds the message until the middleware program routes the message to the second computer program.
  • the recovery program reformats each message to a format compatible with the selected middleware 9 and delivers the appropriately formatted message to the identified message queue 10 .
  • the middleware program independent of the recovery program, then delivers the extracted message to the original destination.
  • the recovery program includes an algorithm to determine if any additional recovered and unread messages remain in the stranded message file 11 . If such additional messages exist, the recovery method repeats the steps necessary to recover, reformat and deliver each remaining message to the message queue.
  • Any algorithm used for iteratively reading and extracting the entire contents of a list or computer file is suitable for use with the present method to read all of the messages within the stranded message file. Examples of suitable algorithms include if/then-type logic loops.
  • the recovery program closes the message queue and disconnects from the middleware 12 .
  • the recovery program also provides for the generation of reports 13 . Suitable reports contain information about the method including whether or not the recover process was successful, the number of messages recovered, and the delivery locations of the recovered messages.
  • the recovery program generates these reports by delivery data necessary to create these reports to hardware output devices such as computer monitors and computer monitors. Alternatively, the recovery program saves the necessary report data to a computer readable storage medium.
  • QCF will be used to extract the messages to be requeued, and the output file will be input to this program. (QCF sorts and assembles the log records by segment, making the logic of this program much simpler.) Output: All error messages are written to SYSPRINT. If program is successful, a status message will be printed to indicate number of messages inserted to MQ.
  • LA R0,MQOT_Q Object is a queue ST R0,OBJDESC_OBJECTTYPE

Abstract

A method for recovering and requeueing lost messages is disclosed. The lost messages are intended for delivery from a first computer program to a second computer program but are instead stranded in locations internal to the first program. The method extracts one or more of these stranded messages from the location internal to the first program, determines the original destination of each stranded message and delivers that message to the second program. Delivery of each message to the second program is facilitated by using message queues provided by middleware type software programs. The desired middleware program can be selected by the user of the method, and the method provides for the necessary formatting of each recovered message according to the selected middleware. Absent use of the present method, these stranded messages would not be routed to their original destinations.

Description

    CROSS REFERENCE TO RELATED APPLICATIONS
  • This invention is a continuation of U.S. patent application Ser. No. 10/319,489, filed Dec. 16, 2002, entitled “Method And System For Recovering Stranded Outbound Messages”, issued as U.S. Pat. No. 7,376,957 on May 20, 2008, and incorporated herein by reference.
  • FIELD OF THE INVENTION
  • The present invention relates to queuing systems for messages delivered between two software applications.
  • BACKGROUND
  • Independent software programs that could also be running on different platforms have a need to exchange messages such as data. In order to send such messages, a source program sends a message to a destination external to the source program. An exit routine within the source program recognizes that the message is bound for a destination outside of the source program. The externally bound message is routed to message queue in a middleware program. This middleware program acts as a bridge between the source program and a separate independent destination program.
  • Errors can occur during the routing of these outbound messages from the source program through the middleware program, and instead of being routed through the middleware, the outbound messages are misdirected or stranded in default message queues internal to the source program. For example, these messages are sent to a destination that, although originally valid for outward bound messages, becomes invalid or is no longer recognized as directed to the middleware for routing outside the source application. Once stranded in an internal default message queue, these messages are effectively “lost” and are never recovered or delivered to the destination program. The source program does not contain a utility or routine to recover these misdirected messages. In fact, the source program may not even recognize that the messages are lost and may not be able to determine the location of the lost messages.
  • A method is needed to identify messages bound for delivery outside of a source program but misdirected and not delivered. What is needed are suitable methods that would identify the misdirected messages, extract the messages from the location to which the messages were improperly delivered and re-route or re-queue these messages through the middleware.
  • SUMMARY OF THE INVENTION
  • Embodiments of the present invention include a method, computer executable code and programmed computer system for recovering a plurality of messages stranded in a destination internal to a first computer executable program and intended for delivery to a second computer executable program through a middleware computer executable program. An embodiment of the present invention recovers a plurality of component messages stranded in a destination or location internal to the first program and routes these recovered messages to a message queue in a middleware software program for delivery to the second computer program to which these stranded messages should have been delivered originally. The recovery method includes extracting a plurality of component messages from the destination internal to the first program, reassembling the logs records as necessary to create the plurality of stranded messages and saving the messages to a stranded message file on an appropriate computer readable storage medium.
  • The operator utilizing a method of the present invention can select the middleware to be used and can identify the message queue within the selected middle for routing of the recovered messages. These selections are provided to the method of the present invention as inputs, for example as input parameters from a user to the computer executable code. In one embodiment, all of the messages or entries in the stranded message file are read. During reading, the original destination of the message is determined, and the message is reformatted for delivery to the middleware message queue and ultimate delivery to the original destination. After the messages have been read and routed through the middleware, the method of the present invention closes the queue and disconnects from the middleware program. If desired, reports detailing the results of the recovery process can be generated and outputted.
  • The method of the present invention provides the advantages and benefits of recovering and redelivering stranded messages that would otherwise be unrecoverable. Therefore, these messages, which can include large data files, do not have to be recreated.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a flow chart illustrating an embodiment of a method for recovering lost messages according to the present invention.
  • DETAILED DESCRIPTION
  • A method according to the present invention recovers at least one and preferably a plurality of messages stranded in a destination internal to a first computer executable program and intended for original delivery to a second computer executable program. Delivery of the stranded messages is through a middleware type computer executable program. The first and second computer executable programs are any computer program containing computer executable code stored on a computer readable storage medium and executable by a logical processor. These computer programs can operate on any one of a number of computer platforms including DOS, Windows, UNIX, VAX, and mainframe platforms. In one embodiment, the platform is an IBM mainframe. The first and second computer executable programs can be the same program, can be different programs, can be on the same platform and can be on different platforms. Suitable first and second computer programs include Information Management System (IMS) programs, commercial available from IBM Corporation of Armonk, N.Y.
  • The middleware program is selected to serve as a bridge between the first computer executable program and the second computer executable program for routing messages between the two programs. The middleware program contains at least one message queue for receiving messages, such as data or other types of files, that are destined from the first program to the second program. Suitable middleware programs can connect to and interface with the programs and platforms of the first and second computer programs. In one embodiment, the middleware computer program is MQSeries® or Websphere MQ® commercially available from IBM Corporation of Armonk, N.Y.
  • An embodiment of the present invention includes a computer executable code for executing the steps of the method. The computer executable code utilizes algorithms readily available and known to one of skill in the art and can be written in any suitable language, for example assembler language, based upon compatibility with the platforms and languages of the first computer program, the second computer program and the middleware program.
  • Another embodiment of the present invention includes a computer system or programmed computer for executing a method and computer executable code according to the present invention. Any conventional computer system available and known to one of skill in the art can be used in this embodiment and should be compatible for reading and executing the computer executable code embodying a method according to the present invention. The programmed computer includes a computer readable memory having at least one region to store the computer executable program code that embodies the method of the present invention and a processor for executing the program code stored in that memory. Suitable memory includes Random Access Memory, Compact Disc Read Only Memory, a hard-disk type drive, a tape drive, a floppy disk type drive, and combinations thereof.
  • In order to recover lost or stranded messages using a computer executable code recovery program embodying a method according to the present invention as illustrated in FIG. 1, the recovery program extracts at least one stranded message from a memory destination or address that represents a location internal to the first program 1. Preferably, the recovery program extracts a plurality of stranded messages. The recovered messages, however, are not always in the form of complete messages but may have been broken down into a plurality of components or packets. For example, because the original message was not or could not be delivered, that message is recorded into a log and can be broken into the components or packets before it is entered into the log. In order to facilitate routing and reassembly, the components or packets include the information necessary for the routing and reassembly of each component, for example in a header associated with that component.
  • The recovery program obtains this destination and reassembly information, for example, through the record log of the messages stored in the location internal to the first program. Therefore, in another embodiment, the recovery program extracts a plurality of component messages or record logs from the destination internal to the first program. Each component message contains at least a portion of a message intended for delivery from the first program to the second program, routing information and information necessary for the reassembly of component message at the message destination. The recovery program reassembles the component messages as necessary to recreate the original messages 2 by making the necessary associations among the numerous component messages to create complete messages.
  • In order to facilitate processing of the recovered plurality of stranded message, the recovery program creates a stranded message file 3 on a memory medium and in a memory location accessible by the recovery program. In one embodiment, this memory location and medium within the programmed computer containing the recovery program. The recovery program saves the extracted stranded messages to the stranded message file. In one embodiment, the recovery program extracts the messages and message components, reassembles of the message components, creates the stranded message file and saves the messages to the stranded message using existing tools, such as software program tools, created for use with the first computer program. Suitable existing tools include Queue Control Facility, commercially available from IBM Corporation of Armonk, N.Y. The recovery program can use existing software tools to carry out these steps by containing computer executable code that acts as a call to the software tools.
  • The user or party attempting to recover stranded messages from the first program selects a middleware program to be used for delivery of the recovered messages 4 and further identifies at least one message queue within the selected middleware for receipt and routing of the recovered messages 5. The message queue represents a memory location in a computer readable memory medium that is accessible and readable by the middleware and provides a temporary location for receipt of messages to be forwarded to the second program. In one embodiment, this memory location and medium are disposed within the programmed computer containing the recovery program. The user can select the middleware program and can identify the message queue as, for example, inputs to the computer executable code embodying the present method. Inputting the user's selections is facilitated by data entry prompts and graphical interfaces provided by the recovery program. Suitable data entry prompts and graphical interfaces are known and available in the art. Alternatively, a separate recovery program is developed for interfacing with each one of a plurality of middleware programs. In this embodiment, the user selects a middleware program by choosing and running the recover program developed for the desired middleware program.
  • Based upon the selected middleware and the identified message queue, the recovery program connects to the middleware and opens the queue 6 by accessing the appropriate location on the computer readable storage medium in which the stranded message file was saved. The recovery program reads a recovered message from the stranded message file 7. In one embodiment, the entire contents of each recovered message or message component is read. In another embodiment, only a header associated with each recovered message or message component containing the original destination information is read. The recovery program confirms that each recovered message was intended for a location external to the first program and identifies that destination 8.
  • Once the recovery program identifies the destination of a message, the message queue receives that message and holds the message until the middleware program routes the message to the second computer program. In order to facilitate reception of the message in the queue and routing of the message by the middleware program, the recovery program reformats each message to a format compatible with the selected middleware 9 and delivers the appropriately formatted message to the identified message queue 10. The middleware program, independent of the recovery program, then delivers the extracted message to the original destination. In order to provide for the delivery of all of the recovered messages, the recovery program includes an algorithm to determine if any additional recovered and unread messages remain in the stranded message file 11. If such additional messages exist, the recovery method repeats the steps necessary to recover, reformat and deliver each remaining message to the message queue. Any algorithm used for iteratively reading and extracting the entire contents of a list or computer file is suitable for use with the present method to read all of the messages within the stranded message file. Examples of suitable algorithms include if/then-type logic loops.
  • If no more messages exist in the stranded message file, the recovery program closes the message queue and disconnects from the middleware 12. The recovery program according to a method of the present invention, also provides for the generation of reports 13. Suitable reports contain information about the method including whether or not the recover process was successful, the number of messages recovered, and the delivery locations of the recovered messages. The recovery program generates these reports by delivery data necessary to create these reports to hardware output devices such as computer monitors and computer monitors. Alternatively, the recovery program saves the necessary report data to a computer readable storage medium.
  • An exemplary application of the method of the present invention is illustrated by the following computer executable code.
  • ***************************************************************************
    * MQREQUE: REQUEUE MESSAGES ORIGINALLY (MISTAKENLY) ENQUEUED
    TO AN IMS LTERM, INSTEAD TO AN OTMA DESTINATION,
    NAMELY MQ.
    Input parms to this program are:
    Qmgr name A local queue manager. For running on MVS, the name will be
    4 chars.
    Queue name This is the name of the queue that will receive the messages,
    probably a remote queue.
    Assumptions:
    An IMS component message will never be more than 32767 (since LL is a
    halfword).
    Max message to be inserted to MQ is 4MB. (Both these assumptions are used
    to determine GETMAIN size.)
    QCF will be used to extract the messages to be requeued, and the output file
    will be input to this program. (QCF sorts and assembles the log records by
    segment, making the logic of this program much simpler.)
    Output:
    All error messages are written to SYSPRINT. If program is successful, a
    status message will be printed to indicate number of messages inserted to MQ.
    ***************************************************************************
    PRINT NOGEN
    MQREQUE CSECT
    MQREQUE AMODE 31
    SAVE (14,12),,MQREQUE-&SYSDATE-&SYSTIME
    LR R12,R15 Base register
    LR R11,R12
    LA R11,2048(R11) May need 2 bases
    LA R11,2048(R11)
    USING MQREQUE,R12,R11 Addressability
    ST R13,SAVEAREA+4 Backward pointer
    LA R13,SAVEAREA Set addr of out savearea
    XC EXITCODE,EXITCODE Init return code
    ST R1,PARMS Save input parm address
    OPEN (SYSPRINT,(OUTPUT))
    BAL R8,GETPARMS PROCESS INPUT PARMS
    L R15,EXITCODE CHECK RETURN
    LTR R15,R15 ZERO?
    BNZ RETURN NO, LEAVE
    L R3,BUFFERLENGTH
    GETMAIN RU,LV=(R3),LOC=(RES,ANY) GET SOME STORAGE
    LR R9,R1 Address of storage
    USING MQBUFFER,R9 Set addressability
    OPEN (IMSREC,INPUT)
    *
    MAINCONN DS 0H
    XC HCONN,HCONN Null connection handle
    CALL MQCONN, X
    (MQMNAME, X
    HCONN, X
    COMPCODE, X
    REASON), X
    MF=(E,PARMLIST),VL
    LA R0,MQCC_OK Expected compcode
    C R0,COMPCODE As expected ?
    BE MAINOPEN Yes, continue with process
    *
    MVC MQERRTYP,=CL10‘CONNECT ’
    BAL R7,FMTERROR Translate error
    LA R0,8 Set exit code
    ST R0,EXITCODE to 8
    B ENDPROG End the program
    *
    MAINOPEN DS 0H
    LA R0,MQOT_Q Object is a queue
    ST R0,OBJDESC_OBJECTTYPE   In object type field
    MVC OBJDESC_OBJECTNAME,MQMQUEUE Move queue name
    LA R0,MQOO_OUTPUT Indicate open is
    ST R0,OPTIONS FOR OUTPUT
    *
    CALL MQOPEN, X
    (HCONN, X
    OBJDESC, X
    OPTIONS, X
    HOBJ, X
    COMPCODE, X
    REASON), X
    MF=(E,PARMLIST),VL
    *
    LA R0,MQCC_OK Expected compcode
    C R0,COMPCODE As expected?
    BE MAINPUT Yes .. continue
    MVC MQERRTYP,=CL10‘OPEN  ’
    BAL R7,FMTERROR Translate error
    LA R0,8 Set exit code
    ST R0,EXITCODE to 8
    B MAINDISC Return to disconnect from
    * qmgr and terminate program
    MAINPUT DS 0H
    XC MSGDESC_CORRELID,MSGDESC_CORRELID Null
    correlation id
    XC MSGDESC_MSGID,MSGDESC_MSGID Null message id
    MVC MSGDESC_FORMAT,=CL8‘MQIMS’
    LA R4,BUFFER BUILD MQ BUF ADDR
    A R4,MQOFFSET  SKIP DOWN IN BUFFER TO START MQ
    LR R10,R4 SAVE THE ADDRESS
    MVC MYIIH_FORMAT,=CL8‘MQIMSVS’
    MVC 0(MYIIH_LENGTH,R10),MYIIH  MOVE IN IIH
    LA R4,MYIIH_LENGTH(R4)
    GETNEXT DS 0H
    GET IMSREC,BUFFER GET INPUT RECORD
    LA R1,BUFFER START OF BUFFER
    USING MRPREFIX,R1 MAP THE MSG REQUEUER PREFIX
    AH R1,MSGMRQLL ADD LENGTH OF MR PREFIX
    DROP R1
    USING MSGPRFX,R1 03 LOG RECORD PREFIX
    LR R2,R1 R2 WILL POINT TO PAYLOAD
    AH R2,MSGPRFLL ADD PREFIX LENGTH
    LH R3,MSGLRLL GET LL
    SH R3,MSGPRFLL SUBTRACT PREFIX LENGTH
    LR R5,R3 LEN FOR MVCL
    MVCL R4,R2   MOVE MSG SEGMENT TO MQ MSG BUF
    TM MSGFLAGS,MSGFLAST WAS THIS LAST RECORD?
    BNO GETNEXT NO, KEEP AT IT
    SR R4,R10 COMPUTE LENGTH OF MESSAGE
    *
    DOPUT DS 0H
    ST R4,MSGBUFLEN
    L R6,PUTCOUNT
    LA R6,1(R6)
    ST R6,PUTCOUNT
    CALL MQPUT, X
    (HCONN, X
    HOBJ, X
    MSGDESC, X
    PUTMSGOPTS, X
    MSGBUFLEN, X
    0(R10), X
    COMPCODE, X
    REASON), X
    MF=(E,PARMLIST),VL
    *
    LA R0,MQCC_OK Load compcode MQCC_OK
    C R0,COMPCODE As expected?
    BE MAINPUT LOOP UNTIL FINISHED
    MVC MQERRTYP,=CL10‘PUT  ’
    BAL R7,FMTERROR Translate error
    LA R0,8 Set exit code
    ST R0,EXITCODE To 8
    B MQCLOSE Return to caller
    *
    *-------------------------------------------------------------------*
    * CLOSE THE QUEUE             *
    *-------------------------------------------------------------------*
    MQCLOSE DS 0H
    LA R0,MQCO_NONE Indicate normal close
    ST R0,OPTIONS of the queue
    *
    CALL MQCLOSE, X
    (HCONN, X
    HOBJ, X
    OPTIONS, X
    COMPCODE, X
    REASON), X
    MF=(E,PARMLIST),VL
    *
    LA R0,MQCC_OK Expected compcode
    C R0,COMPCODE As expected?
    BE MAINDISC Yes . . continue
    L R0,EXITCODE PREVIOUS ERROR?
    LTR R0,R0 CHECK EXITCODE
    BNZ MAINDISC DON'T RUIN PREV MSG
    MVC MQERRTYP,=CL10‘CLOSE  ’
    BAL R7,FMTERROR Translate error
    LA R0,8 Set exit code
    ST R0,EXITCODE To 8
    B MAINDISC DO DISCONNECT
    *
    MAINDISC DS 0H
    *
    CALL MQDISC, X
    (HCONN, X
    COMPCODE, X
    REASON), X
    MF=(E,PARMLIST),VL
    *
    LA R0,MQCC_OK Expected compcode
    C R0,COMPCODE As expected?
    BE ENDPROG Yes .. continue
    L R0,EXITCODE PREVIOUS ERROR?
    LTR R0,R0 CHECK EXITCODE
    BNZ ENDPROG DON'T RUIN PREV MSG
    MVC MQERRTYP,=CL10‘DISCONNECT’
    BAL R7,FMTERROR Translate error
    LA R0,8 Set exit code
    ST R0,EXITCODE To 8
    B ENDPROG Return to caller
    *
    ENDPROG DS 0H
    L R15,EXITCODE Load termination code
    LTR R15,R15 ANY ERROR MSG FOR USER?
    BZ PRINT_RESULTS no, skip writing error
    PUT SYSPRINT,MQERR
    PRINT_RESULTS DS  0H
    L R0,PUTCOUNT Translate put count
    CVD R0,WORKWD To packed decimal
    UNPK CONVERT,WORKWD+4(4)Convert to zoned decimal
    MVZ CONVERT+7(1),CONVERT+6 Make it displayable
    MVC MQPUTCNT,CONVERT Move to display area
    PUT SYSPRINT,STATSMSG
    *
    RETURN DS 0H
    L R15,EXITCODE
    L R13,4(R13) Readdr caller SAVEAREA
    L R14,12(R13) Restore registers
    LM R0,R12,20(R13) Restore registers
    BR R14 Return to caller
    *
    ********************************************************************
    * MAKE THE ERROR CODE PRINTABLE                *
    ********************************************************************
    FMTERROR DS 0H
    L R0,COMPCODE Translate compcode
    CVD R0,WORKWD To packed decimal
    UNPK CONVERT,WORKWD+4(4)Convert to zoned decimal
    MVZ CONVERT+7(1),CONVERT+6 Make it displayable
    MVC MQERRCC,CONVERT+4 Move to display area
    *
    L R0,REASON Translate reason
    CVD R0,WORKWD To packed decimal
    UNPK CONVERT,WORKWD+4(4)Convert to zoned decimal
    MVZ CONVERT+7(1),CONVERT+6 Make it displayable
    MVC MQERRRC,CONVERT+4 Move to display area
    BR R7 Return to caller
    *
    *********************************************************************
    * CONSTANTS, DATA                         *
    *********************************************************************
    SAVEAREA DS 9D Save area
    MSGBUFLENDS F LENGTH OF MSG FOR MQ
    PUTCOUNT DC F‘0’
    CONVERT DS CL8 Used for data conversion
    BUFFERLENGTH DC F‘4033000’ max mem for msg + logrec
    MQOFFSET DC F‘33000’ OFFSET TO MQ MSG IN BUF
    BLANKS DC CL48‘ ’
    MIN_PARM_LEN DC F‘6’
    MAX_PARM_LEN DC F‘53’
    *
    PRINT NOGEN
    OBJDESC CMQODA DSECT=NO,LIST=YES Object descriptor
    MSGDESC CMQMDA DSECT=NO,LIST=YES Message descriptor
    PUTMSGOPTS CMQPMOA DSECT=NO,LIST=YES PUT message options
    MYIIH CMQIIHA DSECT=NO,LIST=YES PUT message options
    *
    ***********************************************************************
    * DCBS                                *
    ***********************************************************************
    PRINT NOGEN
    SYSPRINT DCB DDNAME=SYSPRINT, X
    DSORG=PS,, X
    LRECL=133, X
    BLKSIZE=7980, X
    MACRF=PM, X
    RECFM=FBA
    IMSREC DCB DDNAME=IMSREC,
    DSORG=PS,MACRF=GM,EODAD=MQCLOSE
    *
    ***********************************************************************
    * MQ API CONSTANTS                         *
    ***********************************************************************
      CMQA LIST=YES
    ***********************************************************************
    *   PROCESS INPUT PARMS                      *
    ***********************************************************************
    GETPARMS DS 0H
    MVC MQMNAME,BLANKS BLANK OUT QMGR NAME
    MVC MQMQUEUE,BLANKS BLANK OUT QUEUE NAME
    L R1,PARMS
    L R1,0(R1) PARM ADDRESS
    LH R6,0(R1) LENGTH OF PARMS
    LTR R6,R6 ANYTHING THERE?
    BZ BADPARM NO, GO COMPLAIN
    C R6,MIN_PARM_LEN IS THERE ENOUGH DATA?
    BL BADPARM NO, GO COMPLAIN
    C R6,MAX_PARM_LEN IS THERE TOO MUCH DATA?
    BH BADPARM YES, GO COMPLAIN
    LA R1,2(R1) SKIP PAST PARM LENGTH
    CLI 4(R1),C‘,’ 4 CHARS THEN COMMA
    BNE BADPARM ERROR
    MVC MQMNAME(4),0(R1) OK, COPY QMGR NAME
    LA R1,5(R1) SKIP TO NEXT PARM
    SH R6,=H‘5’ AND ADJUST REMAINING LEN
    LA R2,MQMQUEUE START OF QUEUE NAME TARGET
    QLOOP DS 0H
    MVC 0(1,R2),0(R1) COPY 1 PARM CHAR AT A TIME
    LA R1,1(R1) INCREMENT PARM POINTER
    LA R2,1(R2) INCREMENT TARGET POINTER
    SH R6,=H‘1’ DECREMENT LENGTH LEFT
    LTR R6,R6 ANY PARM LEFT?
    BNZ QLOOP YES, LOOP TILL DONE
    PUT SYSPRINT,QMMSG REPORT QMGR NAME
    PUT SYSPRINT,QNMSG REPORT QUEUE NAME
    BR R8 Return to caller
    BADPARM DS 0H INVALID INPUT PARMS
    PUT SYSPRINT,PARMMSG REPORT INVALID PARMS
    LA R0,4
    ST R0,EXITCODE NON-ZERO RETURN CODE
    BR R8 Return to caller
    *
    *********************************************************************
    *  DATA AREAS                         *
    *********************************************************************
    EXITCODE DS F
    PARMS DS F
    GETMSGOPTS CMQGMOA DSECT=NO,LIST=NO Get message options
    *
    PARMLIST CALL ,(0,0,0,0,0,0,0,0,0,0,0),VL,MF=L
    *
    WORKWD DS D Used for data conversion
    *
    *--------USED BY MQI CALLS ----------------------------------------------------------------*
    *
    OPTIONS DS F Options
    COMPCODE DS F Completion code
    REASON DS F Reason code
    HCONN DS F Connection handle
    HOBJ DS F Connection handle
    OBJECT DS F Object handle
    *
    *********************************************************************
    * ERROR MSGS                            *
    *********************************************************************
    *
    PARMMSG DS 0CL133
    DC C‘ ’
    DC CL10‘ ’
    DC CL50‘** INVALID INPUT PARMS. EXPECTED 4 CHAR
          QMGR NAME ’
    DC CL50‘, COMMA, AND QUEUE NAME (UP TO 48 CHARS).
       ***** ’
    DC CL22‘ ’
    *
    QMMSG DS 0CL133
    DC C‘ ’
    DC CL10‘ ’
    DC CL10‘========>>’
    DC CL30‘ DESTINATION QUEUE MANAGER: ’
    MQMNAME DC CL48‘ ’
    DC CL34‘ ’
    *
    QNMSG DS 0CL133
    DC C‘ ’
    DC CL10‘ ’
    DC CL10‘========>>’
    DC CL30‘ DESTINATION QUEUE NAME:  ’
    MQMQUEUE DC CL48‘ ’
    DC CL34‘ ’
    *
    MQERR DS 0CL133
    DC C‘ ’
    DC CL23‘* AN ERROR OCCURRED IN ’
    MQERRTYP DS CL10
    DC CL20‘. COMPLETION CODE = ’
    MQERRCC DS CL04
    DC CL16‘ REASON CODE = ’
    MQERRRC DS CL04
    DC CL10‘ *********’
    DC CL50‘ ’
    *
    STATSMSG DS 0CL133
    DC C‘ ’     CC
    DC CL10‘ ’
    DC CL11‘========>>’
    MQPUTCNT DC CL8‘ ’
    DC CL103‘ MESSAGE(S) SUCCESSFULLY ENQUEUED.’
    PRINT NOGEN
    ***********************************************************************
    * DSECTS USED BY THIS PROGRAM                   *
    ***********************************************************************
    ILOGREC RECID=03,TYPE=DSECT
    DFSMRQPF
    MQBUFFER DSECT
    BUFFER DS 0C START OF MESSAGE
    *
    REQUATE
    MQREQUE CSECT
    LTORG
    END
  • Other embodiments and uses of the present invention will be apparent to those skilled in the art from consideration of this application and practice of the invention disclosed herein. The present description and examples should be considered exemplary only, with the true scope and spirit of the invention being indicated by the following claims. As will be understood by those of ordinary skill in the art, variations and modifications of each of the disclosed embodiments, including combinations thereof, can be made within the scope of this invention as defined by the following claims.

Claims (17)

1. A method for recovering at least one message from a destination internal to a first computer executable program and intended for delivery to a second computer executable program through a middleware computer executable program, the method comprising:
extracting the message from the destination internal to the first program;
selecting the middleware program to facilitate delivery of the message to the second program;
identifying a message queue within the selected middleware;
formatting the message for the selected middleware; and
placing the message in the queue.
2. The method of claim 1, further comprising:
extracting a plurality of messages;
creating a stranded message file; and
placing the messages in the stranded message file.
3. The method of claim 2, further comprising reading each message saved in the stranded message file.
4. The method of claim 3, further comprising:
confirming that each message is destined for a second program external to the first program; and
determining a desired destination for each message.
5. The method of claim 3, wherein the step of extracting a plurality of messages comprises:
extracting a plurality of component messages, each component message comprising at least a portion of each message; and
assembling the component messages into the plurality of messages as required.
6. The method of claim 1, further comprising:
connecting to the middleware program; and
opening the identified queue.
7. The method of claim 1, further comprising reporting the results of the recovery method.
8. A method for recovering a plurality of messages from a destination internal to a first computer executable program and intended for delivery to a second computer executable program through a middleware computer executable program, the method comprising:
extracting a plurality of component messages from the destination internal to the first program, each component message comprising at least a portion of each message;
assembling the component messages into the plurality of messages as required;
selecting the middleware program to facilitate delivery of the messages to the second program;
identifying a message queue within the selected middleware;
reading each message;
determining a desired destination for each message;
formatting each message for the selected middleware; and
placing each message in the queue.
9. The method of 8, further comprising:
creating a stranded message file;
placing each message in the stranded message file; and
reading each message saved in the stranded message file.
10. The method of claim 8, further comprising:
connecting to the middleware program; and
opening the identified queue.
11. The method of claim 8, further comprising reporting the results of the recovery method.
12. Computer executable software code stored on a computer readable medium, the code for recovering a plurality of messages from a destination internal to a first computer executable program and intended for delivery to a second computer executable program through a middleware computer executable program, the code comprising:
code to extract a plurality of component messages from the destination location internal to the first program, each component message comprising at least a portion of each message;
code to assemble the component messages into the plurality of messages as required;
code to open the middleware program and to connect to an identified message queue within the middleware program to facilitate delivery of the messages to the second program;
code to read a portion of each message to determine a desired destination for each message;
code to format each message for the selected middleware; and
code to place each message in the queue.
13. The computer executable software code of claim 12, further comprising:
code to create a stranded message file and to save all of the messages in that file;
code to read each message saved in the stranded message file.
14. The computer executable software code of claim 12, further comprising code to report the results of the stranded message recovery.
15. A programmed computer for recovering a plurality of messages from a destination internal to a first computer executable program and intended for delivery to a second computer executable program through a middleware computer executable program, the programmed computer comprising a memory having at least one region storing computer executable program code and a processor for executing the program code stored in the memory, wherein the program code includes:
code to extract a plurality of component messages from the destination internal to the first program, each component message comprising at least a portion of each message;
code to assemble the component messages into the plurality of messages as required;
code to open the middleware program and to connect to an identified message queue within the middleware program to facilitate delivery of the messages to the second program;
code to read a portion of each message to determine a desired destination for each message;
code to format each message for the selected middleware; and
code to place each message in the queue.
16. The programmed computer of claim 15, wherein the code further comprises:
code to create a stranded message file and to save all of the messages in that file;
code to read each message saved in the stranded message file.
17. The programmed computer of claim 15, wherein the code further comprises code to report the results of the stranded message recovery
US12/123,796 2002-12-16 2008-05-20 Method and system for recovering stranded outbound messages Expired - Fee Related US8255925B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US12/123,796 US8255925B2 (en) 2002-12-16 2008-05-20 Method and system for recovering stranded outbound messages
US13/558,011 US8695016B2 (en) 2002-12-16 2012-07-25 Method and system for recovering stranded outbound messages
US14/182,018 US9286147B2 (en) 2002-12-16 2014-02-17 Method and system for recovering stranded outbound messages

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/319,489 US7376957B1 (en) 2002-12-16 2002-12-16 Method and system for recovering stranded outbound messages
US12/123,796 US8255925B2 (en) 2002-12-16 2008-05-20 Method and system for recovering stranded outbound messages

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US10/319,489 Continuation US7376957B1 (en) 2002-12-16 2002-12-16 Method and system for recovering stranded outbound messages

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/558,011 Continuation US8695016B2 (en) 2002-12-16 2012-07-25 Method and system for recovering stranded outbound messages

Publications (2)

Publication Number Publication Date
US20080222650A1 true US20080222650A1 (en) 2008-09-11
US8255925B2 US8255925B2 (en) 2012-08-28

Family

ID=39387742

Family Applications (4)

Application Number Title Priority Date Filing Date
US10/319,489 Expired - Fee Related US7376957B1 (en) 2002-12-16 2002-12-16 Method and system for recovering stranded outbound messages
US12/123,796 Expired - Fee Related US8255925B2 (en) 2002-12-16 2008-05-20 Method and system for recovering stranded outbound messages
US13/558,011 Expired - Fee Related US8695016B2 (en) 2002-12-16 2012-07-25 Method and system for recovering stranded outbound messages
US14/182,018 Expired - Lifetime US9286147B2 (en) 2002-12-16 2014-02-17 Method and system for recovering stranded outbound messages

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US10/319,489 Expired - Fee Related US7376957B1 (en) 2002-12-16 2002-12-16 Method and system for recovering stranded outbound messages

Family Applications After (2)

Application Number Title Priority Date Filing Date
US13/558,011 Expired - Fee Related US8695016B2 (en) 2002-12-16 2012-07-25 Method and system for recovering stranded outbound messages
US14/182,018 Expired - Lifetime US9286147B2 (en) 2002-12-16 2014-02-17 Method and system for recovering stranded outbound messages

Country Status (1)

Country Link
US (4) US7376957B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100162263A1 (en) * 2008-12-18 2010-06-24 Hartford Fire Insurance Company Computer system and computer-implemented method for use in load testing of software applications

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7187921B1 (en) * 2001-12-10 2007-03-06 Bellsouth Intellectual Property Corporation Apparatus, system and method for forwarding data sent to a wireless device to another address
US7886295B2 (en) * 2005-02-17 2011-02-08 International Business Machines Corporation Connection manager, method, system and program product for centrally managing computer applications
US20060200705A1 (en) * 2005-03-07 2006-09-07 International Business Machines Corporation Method, system and program product for monitoring a heartbeat of a computer application
US7921165B2 (en) * 2005-11-30 2011-04-05 Microsoft Corporation Retaining mail for availability after relay
CN103064749B (en) * 2013-01-09 2017-05-24 上海斐讯数据通信技术有限公司 Inter-process communication method
WO2015048789A2 (en) * 2013-09-30 2015-04-02 Maximus, Inc. Process tracking and defect detection
US11030697B2 (en) 2017-02-10 2021-06-08 Maximus, Inc. Secure document exchange portal system with efficient user access
CN107770744A (en) * 2017-09-18 2018-03-06 上海世脉信息科技有限公司 The identification of travelling OD node and hop extracting method under big data environment

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5856978A (en) * 1995-08-14 1999-01-05 International Business Machines Corporation Message queuing distribution services for mail systems
US6014673A (en) * 1996-12-05 2000-01-11 Hewlett-Packard Company Simultaneous use of database and durable store in work flow and process flow systems
US6279041B1 (en) * 1998-11-13 2001-08-21 International Business Machines Corporation Methods, systems and computer program products for differencing data communications using a message queue
US6425017B1 (en) * 1998-08-17 2002-07-23 Microsoft Corporation Queued method invocations on distributed component applications
US20030105800A1 (en) * 2001-11-30 2003-06-05 Sonic Software Corporation Dynamically routing messages between software application programs using named routing nodes and named message queues
US6769079B1 (en) * 2000-12-21 2004-07-27 Borland Software Corporation System and method for logging messages in an embedded computer system
US20040153511A1 (en) * 2001-01-02 2004-08-05 Tony Maynard Exchanging electronic messages between a host computer system and a distributed computer system
US6859834B1 (en) * 1999-08-13 2005-02-22 Sun Microsystems, Inc. System and method for enabling application server request failover
US6970945B1 (en) * 1999-11-01 2005-11-29 Seebeyond Technology Corporation Systems and methods of message queuing
US20060209868A1 (en) * 2005-02-25 2006-09-21 Rockwell Automation Technologies, Inc. Reliable messaging instruction
US7127507B1 (en) * 2001-09-27 2006-10-24 Sprint Communications Company L.P. Method and apparatus for network-level monitoring of queue-based messaging systems
US7590138B2 (en) * 2003-05-27 2009-09-15 International Business Machines Corporation System for defining an alternate channel routing mechanism in a messaging middleware environment

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4665520A (en) * 1985-02-01 1987-05-12 International Business Machines Corporation Optimistic recovery in a distributed processing system
GB2276737A (en) * 1993-03-30 1994-10-05 Ibm Fault-tolerant transaction-oriented data processing
US5426774A (en) * 1993-04-06 1995-06-20 Honeywell Inc. Method for maintaining a sequence of events function during failover in a redundant multiple layer system
CA2148459C (en) * 1993-10-08 2000-01-11 Paul Clarke Message transmission across a network
US5754754A (en) * 1995-07-26 1998-05-19 International Business Machines Corporation Transmission order based selective repeat data transmission error recovery system and method
US5703570A (en) * 1995-08-16 1997-12-30 Motorola, Inc. Method and apparatus for indicating undelivered messages in a communication device
GB2311443A (en) * 1996-03-23 1997-09-24 Ibm Data message transfer in batches with retransmission
US5881296A (en) * 1996-10-02 1999-03-09 Intel Corporation Method for improved interrupt processing in a computer system
US6453345B2 (en) * 1996-11-06 2002-09-17 Datadirect Networks, Inc. Network security and surveillance system
US5924097A (en) * 1997-12-23 1999-07-13 Unisys Corporation Balanced input/output task management for use in multiprocessor transaction processing system
US6446206B1 (en) * 1998-04-01 2002-09-03 Microsoft Corporation Method and system for access control of a message queue
US6138158A (en) * 1998-04-30 2000-10-24 Phone.Com, Inc. Method and system for pushing and pulling data using wideband and narrowband transport systems
US6088796A (en) * 1998-08-06 2000-07-11 Cianfrocca; Francis Secure middleware and server control system for querying through a network firewall
US6345281B1 (en) * 1999-03-01 2002-02-05 Electronic Data Systems Corporation Recovery method and system for a resource management system
US6434605B1 (en) * 1999-04-05 2002-08-13 Worldcom, Inc. Automatic detection and recovery for problems arising with interconnected queue managers
GB2354914B (en) * 1999-09-29 2003-10-22 Ibm Data processing technique for message tracing in an asynchronous messaging network
US6760911B1 (en) * 2000-09-29 2004-07-06 Sprint Communications Company L.P. Messaging API framework
US7272662B2 (en) * 2000-11-30 2007-09-18 Nms Communications Corporation Systems and methods for routing messages to communications devices over a communications network
US7177917B2 (en) * 2000-12-27 2007-02-13 Softwired Ag Scaleable message system
US6636855B2 (en) * 2001-03-09 2003-10-21 International Business Machines Corporation Method, system, and program for accessing stored procedures in a message broker
US6965765B2 (en) * 2001-05-17 2005-11-15 Palmsource, Inc. Transactional message-queue communication for wirelessly networked devices system and method
US20030195811A1 (en) * 2001-06-07 2003-10-16 Hayes Marc F. Customer messaging service
GB0212100D0 (en) * 2002-05-27 2002-07-03 Ibm Method apparatus system and computer program for reducing I/O in a messaging environment

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5856978A (en) * 1995-08-14 1999-01-05 International Business Machines Corporation Message queuing distribution services for mail systems
US6014673A (en) * 1996-12-05 2000-01-11 Hewlett-Packard Company Simultaneous use of database and durable store in work flow and process flow systems
US6425017B1 (en) * 1998-08-17 2002-07-23 Microsoft Corporation Queued method invocations on distributed component applications
US6279041B1 (en) * 1998-11-13 2001-08-21 International Business Machines Corporation Methods, systems and computer program products for differencing data communications using a message queue
US6859834B1 (en) * 1999-08-13 2005-02-22 Sun Microsystems, Inc. System and method for enabling application server request failover
US6970945B1 (en) * 1999-11-01 2005-11-29 Seebeyond Technology Corporation Systems and methods of message queuing
US6769079B1 (en) * 2000-12-21 2004-07-27 Borland Software Corporation System and method for logging messages in an embedded computer system
US20040153511A1 (en) * 2001-01-02 2004-08-05 Tony Maynard Exchanging electronic messages between a host computer system and a distributed computer system
US7127507B1 (en) * 2001-09-27 2006-10-24 Sprint Communications Company L.P. Method and apparatus for network-level monitoring of queue-based messaging systems
US20030105800A1 (en) * 2001-11-30 2003-06-05 Sonic Software Corporation Dynamically routing messages between software application programs using named routing nodes and named message queues
US7590138B2 (en) * 2003-05-27 2009-09-15 International Business Machines Corporation System for defining an alternate channel routing mechanism in a messaging middleware environment
US20060209868A1 (en) * 2005-02-25 2006-09-21 Rockwell Automation Technologies, Inc. Reliable messaging instruction

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100162263A1 (en) * 2008-12-18 2010-06-24 Hartford Fire Insurance Company Computer system and computer-implemented method for use in load testing of software applications
US9081881B2 (en) * 2008-12-18 2015-07-14 Hartford Fire Insurance Company Computer system and computer-implemented method for use in load testing of software applications
US9231896B2 (en) 2008-12-18 2016-01-05 Hartford Fire Insurance Company Computer system and computer-implemented method for service and application load testing
US10158540B2 (en) 2008-12-18 2018-12-18 Hartford Fire Insurance Company Computer system and computer-implemented method for load testing a service-oriented architecture service

Also Published As

Publication number Publication date
US8255925B2 (en) 2012-08-28
US8695016B2 (en) 2014-04-08
US20140245327A1 (en) 2014-08-28
US9286147B2 (en) 2016-03-15
US20120291046A1 (en) 2012-11-15
US7376957B1 (en) 2008-05-20

Similar Documents

Publication Publication Date Title
US20120291046A1 (en) Method and System for Recovering Stranded Outbound Messages
US10528405B2 (en) Methods, apparatus and computer programs for managing persistence
US6817018B1 (en) Method of transferring messages between computer programs across a network
US7889384B2 (en) Method for more efficiently managing complex payloads in a point of sale system
US6842833B1 (en) Computer system and method for transferring data between multiple peer-level storage units
US5961659A (en) Independent simultaneous queueing of message descriptors
EP2432155B1 (en) Call list transmission processing method and system of charging system
US5951706A (en) Method of independent simultaneous queueing of message descriptors
JPH11184744A (en) Message queuing system
US6904276B1 (en) Apparatus and method for managing call billing records
EP1177670B1 (en) File transfer system and method
US6721826B2 (en) Buffer partitioning for managing multiple data streams
EP0944283A2 (en) Generic transport option for communication system
US7924844B1 (en) System and method for communicating messages among components in a computing environment
US7792146B2 (en) Technique for controlling selection of a peek adapter or a read adapter from multiple adapters of a high speed switch
US20080267209A1 (en) System and method for store and forward routing for distributed destinations
CN111679892A (en) Distributed transaction processing method, device, equipment and medium
US20080162722A1 (en) Technique for controlling selection of a write adapter from multiple adapters connected to a high speed switch
CN111754348B (en) Scenerized combined transaction method and device
US20010002477A1 (en) System for multi-volume, write-behind data storage in a distributed processing system
US20130110908A1 (en) Method and system for monitoring message objects sent from a client to invoke operations on a server in a distributed computing environment
US6360304B1 (en) Method for multi-volume, write-behind data storage in a distributed processing system
KR100605117B1 (en) Method and system for handling WCDMA packet CDR
JP3785781B2 (en) Data packet reconstruction method
US20020083135A1 (en) Memory management for optimal storage of data of any size in memory

Legal Events

Date Code Title Description
AS Assignment

Owner name: AT&T DELAWARE INTELLECTUAL PROPERTY, INC., DELAWAR

Free format text: CHANGE OF NAME;ASSIGNORS:BELLSOUTH INTELLECTUAL PROPERTY CORPORATION (CHANGED TO);AT&T INTELLECTUAL PROPERTY, INC.;AT&T BLS INTELLECTUAL PROPERTY, INC.;REEL/FRAME:022885/0457;SIGNING DATES FROM 20070427 TO 20071101

Owner name: AT&T DELAWARE INTELLECTUAL PROPERTY, INC., DELAWAR

Free format text: CHANGE OF NAME;ASSIGNORS:BELLSOUTH INTELLECTUAL PROPERTY CORPORATION (CHANGED TO);AT&T INTELLECTUAL PROPERTY, INC.;AT&T BLS INTELLECTUAL PROPERTY, INC.;SIGNING DATES FROM 20070427 TO 20071101;REEL/FRAME:022885/0457

AS Assignment

Owner name: AT&T INTELLECTUAL PROPERTY I, L.P., NEVADA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:AT&T DELAWARE INTELLECTUAL PROPERTY, INC.;REEL/FRAME:023074/0271

Effective date: 20090529

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20200828