throbber
United States Patent [19J
`Whitney
`
`[54]
`
`SYSTEM FOR, AND METHOD OF, OFF(cid:173)
`LOADING NETWORK TRANSACTIONS
`FROM A MAINFRAME TO AN
`INTELLIGENT INPUT/OUTPUT DEVICE,
`INCLUDING OFF-LOADING MESSAGE
`QUEUING FACILITIES
`
`[76]
`
`Inventor: Mark M. Whitney, 3874 Wintergreen
`Ct., Marietta, Ga. 30062-6825
`
`[21] Appl. No.: 09/038,603
`
`[22] Filed:
`
`Mar. 11, 1998
`
`[60]
`
`[51]
`
`[52]
`
`[58]
`
`[56]
`
`Related U.S. Application Data
`Provisional application No. 60/040,555, Mar. 13, 1997.
`
`Int. Cl.7 ............................ G06F 13/14; G06F 13/12;
`G06F 13/10; G06F 3/06; G06F 12/10
`U.S. Cl. ..................................... 710/5; 710/6; 710/52;
`710/54; 710/36; 710/39; 709/215; 709/250;
`709/300
`Field of Search .................................. 710/6, 36, 1, 5,
`710/54; 709/204, 300, 250, 215; 711/152,
`148; 714/38
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,534,013
`4,901,232
`5,263,161
`5,293,385
`5,333,269
`5,388,219
`5,452,430
`5,463,772
`5,465,328
`5,499,384
`5,577,211
`5,603,059
`
`8/1985 Sheth . ... ... ... ... .... ... ... ... ... ... .... ... ... 710/5
`2/1990 Harrington et al. . ... ... ... .... ... ... ... . 710/6
`11/1993 Barth et al. ............................. 711/152
`3/1994 Hary .......................................... 714/38
`7/1994 Calvignac et al. ...................... 709/215
`2/1995 Chan et al.
`. ... ... ... ... ... .... ... ... ... ... . 710/5
`9/1995 Dievendorff et al.
`............. 395/183.13
`10/1995 Thompson et al. ..................... 395/600
`11/1995 Dievendorff et al.
`............. 395/182.13
`3/1996 Lentz et al. ................................. 710/1
`11/1996 Annapareddy et al.
`........... 395/200.13
`2/1997 Churchill et al. . ... ... ... .... ... ... ... .. 710/36
`
`I 1111111111111111 11111 lllll lllll lllll 111111111111111 lllll 111111111111111111
`US006141701A
`[11] Patent Number:
`[45] Date of Patent:
`
`6,141,701
`Oct. 31, 2000
`
`5,659,794
`5,742,761
`5,764,922
`5,822,766
`5,828,881
`5,925,099
`5,931,918
`5,931,920
`5,983,292
`
`8/1997 Caldarale .................................... 710/1
`4/1998 Olnowich et al. ...................... 709/250
`6/1998 Peacock et al.
`............................ 710/6
`10/1998 Purdham et al.
`....................... 711/148
`10/1998 Wang ...................................... 709/300
`7 /1999 Futral et al.
`... ... ... .... ... ... ... ... ... 709 /204
`8/1999 Row et al. .............................. 709/300
`8/1999 Ghaffari et al.
`............................ 710/5
`11/1999 Nordstrom et al.
`...................... 710/54
`
`Primary Examiner-Thomas C. Lee
`Assistant Examiner-Katharina Schuster
`Attorney, Agent, or Firm-Hale and Dorr LLP
`
`[57]
`
`ABSTRACT
`
`A system for, and method of, off-loading network transac(cid:173)
`tions from a mainframe to an intelligent input/output device,
`including off-loading message queuing facilities. A storage
`controller has a processor and a memory, in which the
`controller receives 1/0 commands having corresponding
`addresses. In the controller memory, a communication stack
`is provided for receiving and transmitting information on a
`network. In addition, a message queue facilities (MQF) is
`provided that cooperates with the communication stack and
`that is responsive to a message queue verb. The MQF causes
`the communication stack to provide information to a queue
`in the MQF or causes a queue in the MQF to provide
`information to the communication stack. Moreover, inter(cid:173)
`face logic is provided in the controller memory and is
`responsive to the 1/0 commands, to determine whether an
`1/0 command is within a first set of predetermined 1/0
`commands. If so, the interface logic maps the 1/0 command
`to a corresponding message queue verb and queue to invoke
`the MQF. In this fashion, the MQF may cooperate with the
`communication stack to send and receive information cor(cid:173)
`responding to the verb, while off-loading the processing
`from a computer client (e.g., a mainframe) of the storage
`controller.
`
`22 Claims, 25 Drawing Sheets
`
`Improved 1/0 Device 100
`
`DASO Storage Control Unit 102
`
`105
`
`MQF
`
`Communications
`Stack
`
`Page 1 of 52
`
`

`

`United States Patent [19J
`Whitney
`
`[54]
`
`SYSTEM FOR, AND METHOD OF, OFF(cid:173)
`LOADING NETWORK TRANSACTIONS
`FROM A MAINFRAME TO AN
`INTELLIGENT INPUT/OUTPUT DEVICE,
`INCLUDING OFF-LOADING MESSAGE
`QUEUING FACILITIES
`
`[76]
`
`Inventor: Mark M. Whitney, 3874 Wintergreen
`Ct., Marietta, Ga. 30062-6825
`
`[21] Appl. No.: 09/038,603
`
`[22] Filed:
`
`Mar. 11, 1998
`
`[60]
`
`[51]
`
`[52]
`
`[58]
`
`[56]
`
`Related U.S. Application Data
`Provisional application No. 60/040,555, Mar. 13, 1997.
`
`Int. Cl.7 ............................ G06F 13/14; G06F 13/12;
`G06F 13/10; G06F 3/06; G06F 12/10
`U.S. Cl. ..................................... 710/5; 710/6; 710/52;
`710/54; 710/36; 710/39; 709/215; 709/250;
`709/300
`Field of Search .................................. 710/6, 36, 1, 5,
`710/54; 709/204, 300, 250, 215; 711/152,
`148; 714/38
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,534,013
`4,901,232
`5,263,161
`5,293,385
`5,333,269
`5,388,219
`5,452,430
`5,463,772
`5,465,328
`5,499,384
`5,577,211
`5,603,059
`
`8/1985 Sheth . ... ... ... ... .... ... ... ... ... ... .... ... ... 710/5
`2/1990 Harrington et al. . ... ... ... .... ... ... ... . 710/6
`11/1993 Barth et al. ............................. 711/152
`3/1994 Hary .......................................... 714/38
`7/1994 Calvignac et al. ...................... 709/215
`2/1995 Chan et al.
`. ... ... ... ... ... .... ... ... ... ... . 710/5
`9/1995 Dievendorff et al.
`............. 395/183.13
`10/1995 Thompson et al. ..................... 395/600
`11/1995 Dievendorff et al.
`............. 395/182.13
`3/1996 Lentz et al. ................................. 710/1
`11/1996 Annapareddy et al.
`........... 395/200.13
`2/1997 Churchill et al. . ... ... ... .... ... ... ... .. 710/36
`
`I 1111111111111111 11111 lllll lllll lllll 111111111111111 lllll 111111111111111111
`US006141701A
`[11] Patent Number:
`[45] Date of Patent:
`
`6,141,701
`Oct. 31, 2000
`
`5,659,794
`5,742,761
`5,764,922
`5,822,766
`5,828,881
`5,925,099
`5,931,918
`5,931,920
`5,983,292
`
`8/1997 Caldarale .................................... 710/1
`4/1998 Olnowich et al. ...................... 709/250
`6/1998 Peacock et al.
`............................ 710/6
`10/1998 Purdham et al.
`....................... 711/148
`10/1998 Wang ...................................... 709/300
`7 /1999 Futral et al.
`... ... ... .... ... ... ... ... ... 709 /204
`8/1999 Row et al. .............................. 709/300
`8/1999 Ghaffari et al.
`............................ 710/5
`11/1999 Nordstrom et al.
`...................... 710/54
`
`Primary Examiner-Thomas C. Lee
`Assistant Examiner-Katharina Schuster
`Attorney, Agent, or Firm-Hale and Dorr LLP
`
`[57]
`
`ABSTRACT
`
`A system for, and method of, off-loading network transac(cid:173)
`tions from a mainframe to an intelligent input/output device,
`including off-loading message queuing facilities. A storage
`controller has a processor and a memory, in which the
`controller receives 1/0 commands having corresponding
`addresses. In the controller memory, a communication stack
`is provided for receiving and transmitting information on a
`network. In addition, a message queue facilities (MQF) is
`provided that cooperates with the communication stack and
`that is responsive to a message queue verb. The MQF causes
`the communication stack to provide information to a queue
`in the MQF or causes a queue in the MQF to provide
`information to the communication stack. Moreover, inter(cid:173)
`face logic is provided in the controller memory and is
`responsive to the 1/0 commands, to determine whether an
`1/0 command is within a first set of predetermined 1/0
`commands. If so, the interface logic maps the 1/0 command
`to a corresponding message queue verb and queue to invoke
`the MQF. In this fashion, the MQF may cooperate with the
`communication stack to send and receive information cor(cid:173)
`responding to the verb, while off-loading the processing
`from a computer client (e.g., a mainframe) of the storage
`controller.
`
`22 Claims, 25 Drawing Sheets
`
`Improved 1/0 Device 100
`
`DASO Storage Control Unit 102
`
`105
`
`MQF
`
`Communications
`Stack
`
`Page 1 of 52
`
`

`

`,,
`z
`-l!: go T"!
`•
`Stack
`
`Communications
`
`-
`
`.;
`
`116
`
`...
`
`I..,.,..;_
`
`f
`
`MQF
`
`r
`
`~
`
`Buffers
`Cache
`RAM
`
`120
`
`V
`
`I/
`
`Disk
`
`109 /
`
`~
`
`....,
`
`~
`
`Disk
`
`109
`
`~
`
`....,
`
`....
`
`......
`
`..__
`
`Queue Watching
`
`C>♦a♦"& T-'-•-
`
`118a
`
`118 ~
`
`Queue Watching
`
`~
`
`.,.._,:, __ f'a~ha
`Long Message
`112a
`
`112 H
`
`1
`
`Mapping
`
`I __ ,_
`
`l
`
`-, ..
`
`-
`
`!""'"
`I")
`0
`
`Status Table
`Address Watching
`110a
`
`105
`
`:: Address Watching H
`
`Logic
`
`110
`
`DASO Storage Control Unit 102
`
`100
`
`ev1ce
`
`d 1/0 D
`
`mprove
`
`-
`-
`
`t=e,,-;1;+v
`Lock
`
`"u
`.
`Program
`Channel
`
`-
`
`Collection
`Program
`Channel
`
`, ..,..,;,..
`
`1vo..,
`
`lvoa
`
`1011A
`
`108
`
`DASO Engine
`
`~~ i::-
`.-CD 'iii
`~ .!: 'E
`! :a
`L,
`
`t)
`
`,.
`
`·~
`
`·~
`
`Figure 1
`
`Page 2 of 52
`
`

`

`U.S. Patent
`
`Oct. 31, 2000
`
`Sheet 2 of 25
`
`6,141,701
`
`200
`Address Watching
`Logic
`Figure 2
`
`205
`
`Figure 2
`
`210
`
`No ➔
`
`Return to DSTC Processing
`
`Look up MCHR in the
`address watching
`status table
`
`225
`
`active with active
`branch vector
`
`No---
`
`Return to DSTC Processing
`
`Yes
`
`240
`
`250
`
`Get branch vector from
`Enter Prescribed Mapping Logic Routine
`address watching logic
`status table entry and '-------All mapping logic enters will directly return to DSTC
`enter prescribed
`processing unless otherwise noted
`mapping logic routine
`
`Page 3 of 52
`
`

`

`U.S. Patent
`
`Oct. 31, 2000
`
`Sheet 3 of 25
`
`6,141,701
`
`Mapping Logic
`Figure 3
`
`Figure 3
`
`310
`
`No
`
`Open MQF Queue
`Based Upon this
`Record's MCHR
`
`Yes
`
`FILEC
`
`325
`
`330
`
`335
`
`Yes
`
`Put Message to
`MQF Queue
`
`Return to DSTC
`Logic
`
`No + 340
`
`Return to DSTC
`Processing and signal
`error to TPF
`
`Page 4 of 52
`
`

`

`U.S. Patent
`
`Oct. 31, 2000
`
`Sheet 4 of 25
`
`6,141,701
`
`400
`
`Mapping Logic
`Figure 4
`
`405
`
`MQF Queue
`Open?
`
`No
`
`Yes
`415
`
`FIWHC
`request from
`TPF?
`
`No
`
`425
`
`FILUC
`request from
`TPF
`
`No
`
`440
`
`Figure 4
`
`410
`
`Open MQF Queue
`Based Upon this
`Record's MCHR
`Address
`
`420
`
`Yes
`
`Return to DSTC Processing and permit lock facility
`naturally hold record and return to TPF with good
`return (or put into Waiter Queue Pending Unhold from
`another TPF Processor)
`
`430
`
`435
`
`Yes
`
`Put message to
`MQF queue
`
`Return to DSTC Processing and
`permit lock facility to unhold record
`and pass ii to waiting TPF
`Processor and signal good return to
`TPF
`
`445
`
`UNFRC
`request from
`TPF
`
`-Yes
`
`Return to DSTC Processing and permit Lock
`facility to unhold record and pass it to waiting
`TPF Processor
`
`No 450
`
`Return to DSTC
`Processing and
`signal error to TPF
`
`Page 5 of 52
`
`

`

`U.S. Patent
`
`Oct. 31, 2000
`
`Sheet 5 of 25
`
`6,141,701
`
`Mapping Logic
`Figure 5
`
`500
`
`Figure 5
`
`510
`
`No
`
`Open MQF Queue
`based upon this
`record's MCHR
`address
`
`520
`
`Yes
`
`Return to DSTC Processing and pennit lock facility naturally hold
`record and return to TPF with good return (or put into Waiter Queue
`Pending Un hold from another TPF Processor)
`
`527
`
`Fetch the TPF chain of
`records from the DSTC
`and copy to Long Msg
`Staging Cache
`
`530
`Reassemble the chain
`of records into a single
`long message . Ensure
`the integrity of the
`reassembled long
`message
`
`535
`
`Successfully
`reassemble the long
`message?
`
`N ~
`0~
`
`Yes
`
`7 Yes
`L_____..
`
`Put long message
`to MQF queue
`
`70
`
`Return to DSTC Processing and permit lock
`facility to unhold record and pass it to waiting
`TPF Processor and signal good return to TPF
`.... ___ ····-··
`
`---
`
`Yes
`
`No
`
`request from
`TPF?
`
`No
`
`560
`
`UNFRC
`
`Return to DSTC
`Processing and signal
`error to TPF
`- - - · - - - - - ___ ,,.,.
`
`Page 6 of 52
`
`

`

`U.S. Patent
`
`Oct. 31, 2000
`
`Sheet 6 of 25
`
`6,141,701
`
`600
`
`Mapping Logic
`Figure 6
`
`Figure 6
`
`610
`
`No
`
`Open MQF Queue
`Based Upon this
`Record's MCHR
`Address
`
`Yes
`
`620
`
`Yes
`
`Return to DSTC Processing and permit lock facility
`naturally hold record and return to TPF with good
`return (or put into waiter queue pending unhold from
`another TPF Processor)
`
`No
`
`625
`
`FILEC
`request from
`TPF?
`
`630
`
`-Yes
`
`Put Message to
`MQF Queue as
`Unit of Work
`
`635
`
`Return to DSTC Processing and
`signal good return to TPF
`
`No
`
`No
`
`Yes
`
`645
`
`Put Message to
`MQF Queue as
`unit of work and
`then commit the
`unit of Work
`
`655
`
`660
`
`Yes
`
`Execute a Rollback
`for this message's
`unit of work
`
`Return to DSTC Processing and
`permit lock facilif9 to unhold record
`and pass it to waiting TPF Processor
`and signal good return to TPF
`
`Return to DSTC
`Processing and signal
`error to TPF
`
`Page 7 of 52
`
`

`

`U.S. Patent
`
`Oct. 31, 2000
`
`Sheet 7 of 25
`
`6,141,701
`
`Mapping Logic
`Figure 7
`
`700
`
`Figure 7
`
`710
`
`No
`
`Open MQF Queue
`Based Upon this
`Record's MCHR
`Address
`
`720
`
`request from
`TPF?
`
`Return to DSTC Processing and permit lock facility naturally hold
`Yes record and return to TPF with good return (or put into waiter queue
`pending unhold from another TPF Processor)
`
`No725
`
`FILEC
`request from
`TPF?
`
`Yes
`
`727
`
`730
`
`Fetch the TPF chain
`of records from the
`DSTC and copy to
`Long Msg Staging
`Cache
`
`Reassemble the chain of
`records into a single long
`message . Ensure the
`integrity of the
`reassembled long
`message
`
`No
`
`735
`
`Successfully
`reassemble the
`long message?
`
`~ - - - ,~ . . - - - - - - - - -Ye s - - - - - - - - - -~
`745
`
`750
`
`Put long Message
`to MQF Queue as
`Unit of Work
`
`FILUC
`request from
`TPF?
`
`Yes
`
`Commit the unit of
`work to the MQF
`
`No
`
`Yes
`
`755
`
`Return to DSTC Processing and
`signal good return to TPF
`
`760
`
`765
`
`770
`
`UNFRC
`request from
`TPF?
`
`Yes
`
`Execute a rollback
`for this message's
`unit of work
`
`Return to DSTC Processing and permit
`f---------. lock facility to unhold record and pass it to
`waiting TPF Processor and signal good
`return to TPF
`
`Return to DSTC
`Processing and signal
`error to TPF
`
`\
`
`Page 8 of 52
`
`

`

`U.S. Patent
`
`Oct. 31, 2000
`
`Sheet 8 of 25
`
`6,141,701
`
`Mapping Logic
`Figure 8
`
`800
`
`805
`
`MQF Queue
`Open?
`
`No
`
`810
`
`Open MQF Queue
`Based Upon this
`Record's MCHR
`Address
`
`Figure 8
`
`835
`
`No
`
`Return to DSTC Processing
`and signal error to TPF
`
`Yes
`
`830
`
`FINWC
`request from
`TPF?
`
`Yes 840
`
`Get the first
`message from the
`MQF queue for this
`MCHR and transfer
`to DSTC Cache
`
`880
`
`885
`
`Was there a
`Message?
`
`No 890 . -
`
`-
`
`Transfer a null
`message to DSTC
`Cache to indicate
`nothing found in
`Queue
`
`--Yes
`
`Return to DSTC Processing and DSTC to
`pass record to TPF Processor and signal
`good return to TPF
`
`895
`
`---~Yes
`
`Return to DSTC Processing and
`DSTC to pass null record to TPF
`Processor and signal good return to
`TPF
`
`Page 9 of 52
`
`

`

`U.S. Patent
`
`Oct. 31, 2000
`
`Sheet 9 of 25
`
`6,141,701
`
`Mapping Logic
`Figure 9
`
`900
`
`905
`
`MQF Queue
`Open?
`
`No
`
`910
`
`Open MQF Queue
`Based Upon this
`Record's MCHR
`Address
`
`Figure 9
`
`935
`
`No
`
`Return to DSTC Processing and
`signal error to TPF
`
`Yes
`
`FIWHC
`request from
`TPF?
`
`0
`
`Yes
`
`940
`
`Get the Message
`from the MQF Queue
`for this MCHR and
`transfer to DSTC
`Cache
`
`980
`
`985
`
`Was there a
`Message?
`
`eturn to DSTC Processing and DSTC t
`---~-Yes-~~ pass record to TPF Processor and signal
`good return to TPF
`
`No 990
`i
`
`Ensure MQF Triggers
`the queue watching
`logic for this MCHR
`when a Msg arrives in
`its MQF Queue
`
`995
`
`-
`
`Yes
`
`Return to DSTC Processing processing and
`permit lock facility too hold queue wait process
`the MCHR file address as though another TPF
`Processor already has it.
`
`Page 10 of 52
`
`

`

`U.S. Patent
`
`Oct. 31, 2000
`
`Sheet 10 of 25
`
`6,141,701
`
`Figure 10-A
`
`1000
`
`Mapping Logic
`Figure 10-A
`
`1010
`
`MQF Queue
`Open?
`
`No
`
`Open Queue
`Based Upon this
`Record's MCHR
`
`Yes
`
`request from
`TPF?
`
`1020
`
`J3,J
`
`No~
`
`Yes
`
`1030
`
`Get the long
`message from the
`MQF queue and
`place it in the long
`message staging
`cache
`
`1035
`
`1040
`
`1045
`
`Was there a
`Message?
`
`-Yes
`
`Segment the long
`message into a chain of
`TPF records in the long
`msg staging cache
`
`Initialize the long
`message cursor to
`indicate first record of
`chain
`
`1050
`
`Fig-
`01078-
`
`No
`
`1055
`
`Ensure MQF Triggers
`the queue watching
`logic for this MCHR
`when a Msg arrives in
`its MQF Queue
`
`- - - - - - - - ---c.,1159
`Return to DSTC Processing processing and
`permit lock facility too hold queue wait process
`the MCHR file address as though another TPF
`Processor already has it.
`
`Page 11 of 52
`
`

`

`U.S. Patent
`
`Oct. 31, 2000
`
`Sheet 11 of 25
`
`6,141,701
`
`1070
`
`Mapping Logic
`Figure 10-B
`
`Figure 10-8
`
`072
`
`FINWC
`request from
`TPF?
`
`------...;.i092
`
`No
`
`Return to DSTC
`Processing and signal
`error to TPF
`
`Yes
`
`1074
`
`Any more records
`from long message to
`transfer?
`
`No
`
`1076
`
`Transfer a null
`record to DSTC
`Cache to indicate
`end of chain
`
`1078
`
`Transfer the next record
`from the long msg
`staging cache area to
`the DSTC Cache for
`this MCHR
`
`1080
`
`Was this the last
`record in the chain?
`
`Yes
`
`No
`
`t
`
`1085
`
`1090
`
`Flush the TPF record
`chain in the long
`message staging cache
`and zero the long
`message cursor.
`
`Update long message
`cursor to next record of - - - - - - - - - - - -~
`chain
`
`1095
`
`eturn to DSTC Processing an
`DSTC to pass record to TPF
`Processor and signal good return
`toTPF
`
`Page 12 of 52
`
`

`

`U.S. Patent
`
`Oct. 31, 2000
`
`Sheet 12 of 25
`
`6,141,701
`
`Figure 11-A
`
`Mapping Logic
`Figure 11-A
`
`1100
`
`1110
`
`MQF Queue
`Open?
`
`Open queue based
`No----. upon this record's
`MCHR
`
`Yes
`1125
`
`HOLDC
`request from
`TPF?
`
`No
`
`1135
`
`FINWC
`request from
`TPF?
`
`No
`
`1180
`
`I
`
`1130
`
`Yes
`
`Return to DSTC Processing and
`signal TPF with good return
`
`Yes
`
`1137
`
`Get the firsUnext
`message from the
`MQF queue as a
`unit of work for this
`MCHR
`
`1185
`
`1139
`
`Fig-
`1150-A
`
`UNFRC
`request from
`TPF?
`
`Yes
`
`Execute a Commit
`the unit work to the
`MQF Queue
`
`No
`
`1190
`
`1192
`
`1195
`
`FILUC
`request from
`TPF?
`
`Yes
`
`Rollback the Unit
`of Work for this
`MQF Queue
`
`Return te DSTC Processing and
`permit lock facility to unhold record
`and pass it to waiting TPF Processor
`and signal good return to TPF
`
`No 1199
`-- t
`-
`Return to DSTC Proces~
`and signal error to TP~
`
`Page 13 of 52
`
`

`

`U.S. Patent
`
`Oct. 31, 2000
`
`Sheet 13 of 25
`
`6,141,701
`
`Figure 11-B
`
`150
`
`Mapping Logic
`Figure 11-8
`
`1155
`
`Was there a
`message in the MQF
`queue?
`
`Yes
`
`1159
`
`Transfer the next
`message in the unit
`of work from the
`MQF to the DSTC
`Cache for this MCHR
`
`No
`
`1160
`
`Any messages fro
`this unit of work been
`transferred
`
`Yes
`
`1165
`
`Transfer a null
`record to DSTC
`Cache
`to indicate end of
`unit of work
`
`1169
`
`Return to DSTC Processing and
`DSTC to pass record to TPF
`Processor and signal good return
`toTPF
`
`No
`
`1170
`
`Ensure MQF Triggers
`the queue watching
`logic for this MCHR
`when a Msg arrives in
`its MOF Queue
`
`1175
`
`Return to DSTC Processing
`processing and permit lock facility
`too hold queue wait process the
`MCHR file address as though
`another TPF Processor already has
`it.
`
`Page 14 of 52
`
`

`

`U.S. Patent
`
`Oct. 31, 2000
`
`Sheet 14 of 25
`
`6,141,701
`
`1200
`
`Mapping Logic
`Figure 12-A
`
`MQF Queue
`
`-No
`
`1210
`
`Open queue based
`upon this record's
`MCHR
`
`Yes
`
`1230
`
`request from
`TPF?
`
`Yes
`
`Return to DSTC Processing
`and signal good return
`
`No
`
`1235
`
`FINWC
`request from
`TPF?
`
`No
`
`1280
`
`1237
`
`~~1239
`- - -Y e s~
`
`1285
`
`UNFRC
`request from
`TPF?
`
`Yes
`
`Execute a Commit
`the unit work to the
`MQF Queue
`
`No
`
`1290
`
`1292
`
`FILUC
`request from
`TPF?
`
`--Yes -
`
`Rollback the Unit
`of Work for this
`MQF Queue
`
`No 1299
`
`Return to DSTC Processing
`and signal error to TPF
`
`Figure 12-A
`
`1295
`
`Return to DSTC Processing
`and signal good return to TPF
`
`Page 15 of 52
`
`

`

`U.S. Patent
`
`Oct. 31, 2000
`
`Sheet 15 of 25
`
`6,141,701
`
`Mapping Logic
`Figure 12-B
`
`Yes
`
`1250
`
`More of long
`message to
`transfer?
`
`No
`
`Get the next long
`message of the unit
`of work from the
`MQF queue and
`place it in the long
`message staging
`cache
`
`54
`
`Was there a
`message in the MQF
`queue?
`
`Figure 12-B
`
`1244
`
`Get the first long
`message of the unit
`of long message
`from the MQF queue
`and place it in the
`long message
`staging cache
`
`Was there a
`message in the MQF
`queue?
`
`No
`
`Yes
`
`Ensure MQF Triggers
`the queue watching
`logic for this MCHR
`when a Msg arrives in
`its MQF Queue
`
`1262
`
`Return to DSTC Processing
`recessing and permit lock facilit
`too hold queue wait process the
`MCHR file address as though
`another TPF Processor already
`has it.
`
`Yes
`
`I
`
`- - - - - - - - - ' - " .U s
`
`1267
`
`Segment the long
`message into a chain of f - - - - - - - - - (cid:173)
`TPF records in the long
`msg staging cache .
`
`Transfer the first record
`from the long msg
`staging cache area to
`the DSTC Cache for
`this MCHR
`
`Yes
`,
`
`12f
`6
`
`Segment the long
`message into a chain of
`TPF records in the long
`rnsg staging cache .
`
`No
`
`Transfer the next record
`from the long msg
`staging cache area to
`the DSTC Cache for
`this MCHR
`
`l
`
`12 57
`
`
`Transfer a X'FF' record
`to DSTC Cache to
`indicate the last long
`message has been
`transferred and another
`is ready for transfer
`
`1258
`
`1259
`
`Transfer a null
`record to DSTC
`Cache to indicate
`both last record and
`end of unit of work
`
`Flush the TPF record
`chain in the long
`message staging
`cache.
`
`L_ __
`
`- - - - - - - - - - - - - - - - - -~ - - - - - - -
`
`1279
`eturn to DSTC Processing an
`DSTC to pass record to TPF
`Processor and signal good return
`to TPF
`
`Page 16 of 52
`
`

`

`U.S. Patent
`
`Oct. 31, 2000
`
`Sheet 16 of 25
`
`6,141,701
`
`Figure 13
`
`Mapping Logic
`Figure 13
`
`1300
`
`1305
`
`MQF Queue
`Open?
`
`No
`
`1310
`
`Open MQF Queue
`Based Upon this
`Record's MCHR
`Address
`
`1335
`
`No
`
`Return to DSTC Processing
`and signal error to TPF
`
`Yes
`
`1330
`
`FINWC
`request from
`TPF?
`
`Browse the first
`message from the
`MQF queue for this
`MCHR and transfer
`to DSTC Cache
`
`1380
`
`1385
`
`Was there a
`Message?
`
`Yes
`
`Return to DSTC Processing and DSTC to
`pass record to TPF Processor and signal
`good return to TPF
`
`No1390
`
`Transfer a null
`message to DSTC
`Cache to indicate
`nothing found in
`Queue
`
`1395
`
`Yes
`
`Return to DSTC Processing and
`DSTC to pass null record to TPF
`Processor and signal good return to
`TPF
`
`Page 17 of 52
`
`

`

`U.S. Patent
`
`Oct. 31, 2000
`
`Sheet 17 of 25
`
`6,141,701
`
`Figure 14
`
`Mapping Logic
`Figure 14
`
`1400
`
`MQFQueue
`Open?
`
`No
`
`1410
`
`Open MQF Queue
`Based Upon this
`Record's MCHR
`Address
`
`1435
`
`No
`
`Return to DSTC Processing and
`signal error to TPF
`
`1445
`
`No
`
`Indicate Browse First
`in Queue on next
`Activation
`
`1449
`
`Return to DSTC Processing
`and signal good return to TPF
`
`Simple Find or File
`request from TPF?
`FINWC or FILEC?
`
`Yes
`
`Yes 1450
`
`Browse the Next
`message from the
`MQF queue for this
`MCHR and transfer
`to DSTC Cache
`
`Was there a
`Message?
`
`Yes
`
`Return to DSTC Processing and DSTC to
`pass record to TPF Processor and signal
`good return to TPF
`
`1465
`
`NO
`
`1470
`
`Empty Queue?
`
`Yes
`
`1475
`
`Transfer a null
`message to DSTC
`Cache to indicate
`nothing found in
`Queue
`
`,·~-----1,'-=1480
`
`Transfer a X'FF"
`message to DSTC
`Cache to indicate
`end of Queue
`
`1485
`
`Return to DSTC
`Processing and DSTC to
`pass null record to TPF
`Processor and signal
`good return to TPF
`
`Page 18 of 52
`
`

`

`U.S. Patent
`
`Oct. 31, 2000
`
`Sheet 18 of 25
`
`6,141,701
`
`Figure 15
`
`Mapping Logic
`Figure 15
`
`1500
`
`MQF Queue
`Open?
`
`No
`
`1515
`
`Open MQF Queue
`Based Upon this
`Record's MCHR
`Address
`
`1525
`
`request from
`TPF?
`
`Yes
`
`Return to DSTC Processing and return to
`TPF with good return
`
`No
`
`1530
`
`FILEC
`request from
`TPF?
`
`Yes
`
`Yes
`
`Transfer the Cursor
`from the Filed
`Record to the
`address watching
`status table
`
`1535 _____ 1539
`~
`Return to DSTC
`Processing signal good
`return to TPF
`
`Yes
`
`request from
`TPF?
`
`No
`
`1545
`Unhold/Unlock
`record request from
`TPF? (UNFRC)
`
`1549
`
`No
`
`Return to DSTC
`Processing and
`signal error to TPF
`
`Yes 1550
`Browse a message
`from the MQF queue
`based upon the
`cursor for this MCHR
`and transfer to DSTC
`Cache
`
`Yes
`
`1555
`
`Return to DSTC Processing and permit lock
`facility to unhold record and pass it to waiting
`TPF Processor and signal good return to TPF
`
`1565
`
`Was there a
`Message?
`
`Yes
`
`Return to DSTC Processing and DSTC to
`pass record to TPF Processor and signal
`good return to TPF
`
`No 1570
`
`Transfer a null
`message to DSTC
`Cache to indicate
`nothing found in
`Queue
`
`1575
`
`Return to DSTC Processing and
`DSTC to pass null record to TPF
`Processor and signal good return to
`TPF
`
`Page 19 of 52
`
`

`

`U.S. Patent
`
`Oct. 31, 2000
`
`Sheet 19 of 25
`
`6,141,701
`
`Figure 16
`
`Mapping Logic
`Figure 16
`
`1600
`
`1615
`
`No
`
`Open MQF Queue
`Based Upon this
`Record's MCHR
`Address
`
`1625
`
`request from
`TPF?
`
`Yes
`
`Return to DSTC Processing and permit
`lock facility naturally hold record and
`return to TPF with good return
`
`~---------;1635
`Transfer the Cursor
`from the Filed
`Record to the
`address watching
`status table
`
`1639
`
`Yes Return to DSTC Processing signal
`good return to TPF
`
`1645
`
`UNFRC
`request from
`TPF?
`
`Yes
`
`1655
`
`1649
`
`Return to DSTC Processing
`and signal error to TPF
`
`No
`
`1630
`
`FILEC
`request from
`TPF?
`
`Yes
`
`Yes
`
`request from
`TPF?
`
`No
`
`Yes 1650
`
`Get single message
`from the MQF queue
`based upon the
`cursor for this MCHR
`and transfer to DSTC
`Cache
`
`1660
`
`Return to DSTC Processing and permit lock
`facility to unhold record and pass it to waiting
`TPF Processor and signal good return to TPF
`
`1665
`
`Was there a
`Message?
`
`Yes
`
`Return to DSTC Processing and DSTC to
`pass record to TPF Processor and signal
`good return to TPF
`
`No 1670
`
`Transfer a null
`message to DSTC
`Cache to indicate
`nothing found in
`Queue
`
`1675
`
`Return to DSTC Processing and DSTC to
`pass null record to TPF Processor and
`signal good return to TPF
`
`Page 20 of 52
`
`

`

`U.S. Patent
`
`Oct. 31, 2000
`
`Sheet 20 of 25
`
`6,141,701
`
`Figure 17
`
`Mapping Logic
`Figure 17
`
`1700
`
`MQF Queue
`Open?
`
`No
`
`1715
`
`Open MQF Queue
`Based Upon this
`Record's MCHR
`Address
`
`1725
`
`request from
`TPF?
`
`Yes
`
`Return to DSTC Processing and permit
`lock facility naturally hold record and
`return to TPF with good return
`
`No
`
`1730
`
`FILEC
`request from
`TPF?
`
`Yes
`
`740
`
`FINWC
`request from
`TPF?
`
`Yes 1750
`
`et message and
`escriptor from the
`OF queue based
`ed options for this
`HR and transfer to
`DSTC Cache
`
`Transfer the Get
`Options from the
`Filed Record to the Yes
`address watching
`status table
`
`1739
`
`Return to DSTC Processing signal good
`return to TPF
`
`1745
`
`UNFRC
`request from
`TPF?
`
`1749
`Return to DSTC Processing and
`signal error to TPF
`
`No
`
`Yes
`
`No--
`
`Yes
`
`1755
`
`Return to DSTC Processing and permit lock
`facility to unhold record and pass it to wailing
`TPF Processor and signal good return to TPF
`
`1765
`
`Was there a
`Message?
`
`--Yes
`
`Return to DSTC Processing and DSTC to
`pass record to TPF Processor and signal
`good return to TPF
`
`No 1770
`
`Transfer a null
`message to DSTC
`Cache to indicate
`nothing found in
`Queue
`
`1775
`
`Return to DSTC Processing and
`DSTC to pass null record to TPF
`Processor and signal good return to
`TPF
`- - - - - - - - - -
`
`Page 21 of 52
`
`

`

`U.S. Patent
`
`Oct. 31, 2000
`
`Sheet 21 of 25
`
`6,141,701
`
`Figure 18
`
`1800
`
`Mapping Logic
`Figure 18
`
`1805
`
`MQF Queue
`
`No
`
`Yes
`
`1810
`
`Open MQF Queue
`Based Upon this
`Record's MCHR
`Address
`
`1820
`
`request from
`TPF?
`
`Yes
`
`Return to DSTC Processing and permit lock facility
`naturally hold record and return to TPF with good
`return
`
`No
`
`request from
`TPF?
`
`Yes
`
`No
`
`1830
`
`Put message and
`descriptor to MQF
`queue using
`passed options
`
`1835
`
`Return to DSTC Processing
`and permit lock facility
`to unhold record
`and pass it to waiting
`TPF Processor
`
`1845
`
`Yes
`
`Return to DSTC Processing and permit
`Lock facility to unhold record and pass
`it to waiting TPF Processor
`
`No1850
`
`Return to DSTC
`Processing and signal
`error to TPF
`
`Page 22 of 52
`
`

`

`U.S. Patent
`
`Oct. 31, 2000
`
`Sheet 22 of 25
`
`6,141,701
`
`Figure 19
`
`1900
`Queue Watching Logic
`The MQF has triggered this logic
`because a msg has arrived in the MQF
`that may need to be passed to a
`wailing mainframe processor.
`
`~----'L--1~910
`Reference the
`trigger activation
`mesage, and the
`queue watching
`status table
`
`1925
`Put this trigger
`message to the
`master trigger
`response queue
`indicating
`uninitialized queue
`
`No
`
`Yes
`
`1930
`
`1940
`
`MCHR in triggered
`locked wait state?
`
`-No
`
`Yes
`
`~
`~e s
`~ - - ~ - ~ 5
`Set Conditions in
`the Lock Facility to
`unhold trigger
`locked MCHR and
`signal wailing
`mainframe to re(cid:173)
`request
`
`No
`
`1945
`
`Indicate this queue
`has messages in
`Queue Watching
`Table entry
`
`--~------19.70
`Return to queue watching
`wait state pending trigger
`activation by MQF
`
`___ .....____ _ _ 1_,__9-80
`
`Exit to DSTC and permit lock
`facility to unhold record signal
`waiting mainframe processor to
`re-request
`
`1950
`Put this trigger
`message to the
`master trigger
`response queue
`with corresponding
`MCHR address
`
`1960
`
`rtrigge
`ueue in Yes
`
`Page 23 of 52
`
`

`

`U.S. Patent
`
`Oct. 31, 2000
`
`Sheet 23 of 25
`
`6,141,701
`
`Figure 20
`
`Mapping Logic
`Figure 20
`
`2000
`
`2005
`
`MQF Control
`Queues Open?
`
`No
`
`2010
`
`Open Master
`Control Family of
`Queues
`
`Yes
`2015
`
`2020
`
`FIWHC
`request from
`TPF?
`
`Yes
`
`Return to DSTC Processing and permit
`lock facility naturally hold record
`and return to TPF with good return
`
`No
`
`2025
`
`2030
`
`2035
`
`FILUC
`request from
`TPF?
`
`Yes
`
`Execute control
`message to specified
`MQF queue
`
`No
`
`2070
`
`2075
`
`UNFRC
`request from
`TPF?
`
`Yes
`
`Return to DSTC
`Processing and permit
`Lock facility to unhold
`record
`
`Put the combine
`request and response
`into the master control
`response queue and
`into the master control
`logging queue
`
`2040
`
`~ - - - - - " ' - - - - - - - -~~
`Execute an Inquiry
`command against
`specified queue and
`replace existing inquiry
`reponse message in
`master control inquiry
`queue
`
`2045
`
`Also Put the response
`to the inquiry to the
`master control loggin!r
`queue
`
`No
`
`2080
`
`Return to DSTC
`Processing and
`signal error to TPF
`
`2060
`----
`
`Return to DSTC
`Processing and permit
`lock facility to unhold
`record
`
`2055
`Check-point the
`address and queue
`watching table entries
`by repectively replacing
`their entries in the
`check-pointed
`persistent queues
`
`Update the
`address and queue
`watching status
`table with current
`status
`
`Page 24 of 52
`
`

`

`U.S. Patent
`
`Oct. 31, 2000
`
`Sheet 24 of 25
`
`6,141,701
`
`Figure 21
`
`Mainframe with Onboard
`Commercial Message Queuing Facility (CMQF)
`and
`Supporting Communication Stack (CS)
`# 1 - Application
`Puts
`a Message to the
`CMQF
`
`Commercial Message Queuing Facility (CM PF)
`
`I
`
`#3-The ~MQF
`Send the
`Mesf ~ge
`through the CS
`
`Ma nframe
`
`I
`I
`
`Commun cation Stack
`
`Mainfr eme DASO File
`Input/Ou put (1/0) Routines
`
`# 2 - The CMQF sav 3s the Put Message
`to D ~SD
`
`Mainframe Channel Subsystem
`
`I
`
`...
`
`Mainfr, Im< Ch nnels
`
`'I'
`
`DA 13D Storage
`C tmtrol Unit
`(DSTC)
`
`j
`
`Mainfram, q,. trnels
`
`'"
`
`Communic, ion
`Control U it
`(CCU)
`
`-
`
`0,
`
`11'
`
`......
`___,
`
`/
`r---
`
`H1gn
`F erformance
`Pd Jistent DASO
`Data Storage
`__,
`--
`
`'-
`
`,
`
`((\
`\U
`--
`
`Open System
`with Message
`Queuing Facility
`
`, __
`
`I
`uata
`Warehouse or
`Data Mart
`with Message
`Queuing
`Facilitv
`
`Message
`Redirect and
`Tran slate for the
`Message
`Queuing Facility
`
`'
`
`)
`
`Archive Facility with
`Message Queuing
`Facility
`
`Page 25 of 52
`
`

`

`U.S. Patent
`
`Oct. 31, 2000
`
`Sheet 25 of 25
`
`6,141,701
`
`High Performance
`Persistent DASO
`Data Storage
`STDTPF
`
`•
`
`11
`
`11
`
`Figure 22
`
`Mainframe with IBM Transaction Processing Facility (TPF) Operating System
`
`TPF Fixed
`Data
`Record
`(MCHR-41)
`
`TPF File
`is an
`
`a Record
`F Put
`
`TPF Mainframe Channel Subsystem
`
`TPF Find
`is an
`
`a Record
`F Get
`
`DASD Storage Control Unit's(DSTC) Mainframe Channel Interface
`with Limited Locking Facility (LLF) - Device Type "B"
`
`TPF Fixed
`Data
`Record
`(MCHR-3x)
`
`..
`
`TPF Fixed
`Data
`Record
`(MCHR-4x)
`
`..,,
`
`TPF File a Record
`Its MCHR
`Maps to an
`
`..,,
`MQF DSTC
`Monitoring and
`Intercept
`Processes
`TPF Find a Record
`Its MCHR
`ile Address
`DASD Storage Control Unit Limited Lock Facility
`Maps from a MQF Queue
`or Multi-Path Lock Facility
`ercial Message Queuing Facility encapusulated and controlled by the Message Queuing Off ad
`Faciljty(MQF) which is resident.on DASD Storage Control Unit
`
`M
`Put
`Queue
`1
`
`►
`MQF
`Put
`Qu

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket