T.R | Title | User | Personal Name | Date | Lines |
---|
1064.1 | EVENT_TRACE dump | STKHLM::BERGGREN | Nils Berggren EIS/Project dpmt, Sweden DTN 876-8287 | Wed May 29 1991 09:12 | 162 |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
dump of Event_Get and Event_Put
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
$ MANAGE/ENTER/DEBUG
DECmcc (V1.1.0)
MCC> enable mcc 0 alarms rule ev1
MCC 0 ALARMS RULE ev1
AT 29-MAY-1991 12:20:55
Tracing error paths in Event Manager
Tracing Event code path in GET
Tracing Event code path in PUT
Event_Put starting
Event_Put processing Partition argument
Event_Put Input Arguments ...
p_ent_spec =
entity [0] wild = NOT_WILD class = 8 id = 0 type = 5
instance =
entity [1] wild = NOT_WILD class = 5 id = 1 type = 4
instance = ..ev1
%X0103657631
Partition = 15
Event Code = 29
Event Data =
Dump of MCC Descriptor reveals:
mcc_w_maxstrlen = 512
mcc_w_curlen = 40
mcc_b_flags = 0
mcc_b_ver = 1
mcc_l_id = 29
mcc_l_dt = MCC_K_DT_ILV
mcc_a_pointer = �..$."( occurs( mymm ABCD any events) ).
%XBD820024952228206F636375727328206D796D6D204142434420616E79206576656E747329202900
mcc_a_link = MCC_K_NULL_PTR
Timestamp = 29-MAY-1991 12:20:56.25
Event_Put getting current time
Event_Put converting user supplied time into BAT
Event_Put building an EDS structure to store Event Data
Event_Put creating an AHS
Event_Put Locking Subscriber structures
Event_Put Subscriber searching for first(/next) matching request
Event_Put Subscriber Handle state = MCC_K_HANDLE_FIRST
Event_Put Subscriber finished matching requests
Event_Put Unlocking Subscriber structures
Event_Put cleaning up
Event_Get starting
Event_Get processing Partition argument
Event_Get Input Arguments ...
in_entity =
entity [0] wild = NOT_WILD class = 700 id = 1 type = 4
instance = ..ABCD
%X010441424344
Partition = 15
Filter = MCC_K_NULL_PTR
time_spec = MCC_K_NULL_PTR
Handle context not set up yet
Event_Get handle state = MCC_K_HANDLE_FIRST
Event_Get building a PRMB for this request
Event_Get creating a Heartbeat thread for this request
Event_Get setting the Heartbeat thread-id 1000C
Event_Get creating TimeStamps
Event_Get requesting NEXT event
Going to wait for the event now...
Normal operation has begun.
Event_Get was Signalled
Copying Event Data to user supplied buffers
Event_Get converting time to supplied time type
Event_Get deleting global event data
Event_Get performing general clean up
THUMP!
Failed to dequeue event:
%MCC-E-NOMOREVT, no more events in event queue
Event_Get Output Arguments ...
Handle context not set up yet
out_entity =
entity [0] wild = NOT_WILD class = 700 id = 1 type = 4
instance = ..ABCD
%X010441424344
timestamp = 29-MAY-1991 12:21:06.22
Event Code = 771
Event Data =
Dump of MCC Descriptor reveals:
mcc_w_maxstrlen = 2048
mcc_w_curlen = 36
mcc_b_flags = 0
mcc_b_ver = 1
mcc_l_id = 1
mcc_l_dt = MCC_K_DT_ILV
mcc_a_pointer = �.. �...�.......JUST AN EVENT-REPORT
%XA1820020A182001CBF860382001681144A55535420414E204556454E542D5245504F5254
mcc_a_link = MCC_K_NULL_PTR
Event_Get completed
Event_Put starting
Event_Put processing Partition argument
Event_Put Input Arguments ...
p_ent_spec =
entity [0] wild = NOT_WILD class = 8 id = 0 type = 5
instance =
entity [1] wild = NOT_WILD class = 5 id = 1 type = 4
instance = ..ev1
%X0103657631
Partition = 16
Event Code = 25
Event Data =
Dump of MCC Descriptor reveals:
mcc_w_maxstrlen = 512
mcc_w_curlen = 146
mcc_b_flags = 0
mcc_b_ver = 1
mcc_l_id = 25
mcc_l_dt = MCC_K_DT_ILV
mcc_a_pointer = �...�..c�.._�.............�..........ABCD..testevent has occurred 29-MAY-1991 12:21:24.02..@.�...�.......<.."( occurs( mymm ABCD any events) )....
%XB982008EBB820063A182005FA1820019A0820015810101820202BC8301018401048506010441424344822E746573746576656E7420686173206F636375727265642032392D4D41592D313939312031323A32313A32342E30328310401FC9859A1DCA01FFFFFFFFFFFF3C10952228206F636375727328206D796D6D204
mcc_a_link = MCC_K_NULL_PTR
Timestamp = 29-MAY-1991 12:21:24.28
Event_Put getting current time
Event_Put converting user supplied time into BAT
Event_Put building an EDS structure to store Event Data
Event_Put creating an AHS
Event_Put Locking Subscriber structures
Event_Put Subscriber searching for first(/next) matching request
Event_Put Subscriber Handle state = MCC_K_HANDLE_FIRST
Event_Put Subscriber finished matching requests
Event_Put Unlocking Subscriber structures
Event_Put cleaning up
Event_Put starting
Event_Put processing Partition argument
Event_Put Input Arguments ...
p_ent_spec =
entity [0] wild = NOT_WILD class = 8 id = 0 type = 5
instance =
entity [1] wild = NOT_WILD class = 5 id = 1 type = 4
instance = ..ev1
%X0103657631
Partition = 15
Event Code = 30
Event Data =
Dump of MCC Descriptor reveals:
mcc_w_maxstrlen = 512
mcc_w_curlen = 105
mcc_b_flags = 0
mcc_b_ver = 1
mcc_l_id = 30
mcc_l_dt = MCC_K_DT_ILV
mcc_a_pointer = �..e."( occurs( mymm ABCD any events) ).....<%MCC-E-INV_HANDLE_STAT, software error: invalid handle state
%XBE820065952228206F636375727328206D796D6D204142434420616E79206576656E747329202900960101973C254D43432D452D494E565F48414E444C455F535441542C20736F667477617265206572726F723A20696E76616C69642068616E646C65207374617465
mcc_a_link = MCC_K_NULL_PTR
Timestamp =
Event_Put getting current time
Event_Put converting user supplied time into BAT
|
1064.2 | debug-log | STKHLM::BERGGREN | Nils Berggren EIS/Project dpmt, Sweden DTN 876-8287 | Wed May 29 1991 09:13 | 244 |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
log from DEBUG
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-> !!
-> !! get state of the handle just before returning from the
-> !! GETEVENT-directive entry-point
-> !!
examine handle
!MCC_MYMM__GETEVENT\mcc_MYMM__getevent\handle: 3131644
eval/addre status
!2377028
set image mcc_kernel_shr
set modu/all
call mcc_ahs_get_state(3131644, 2377028)
!value returned is 52854793
!%DEBUG-I-DYNIMGSET, setting image MCC_MYMM_AM
eval/condition 52854793
!%MCC-S-NORMAL, normal successful completion
-> !!
-> !! NO problem getting handle state
-> !!
examine status
!MCC_MYMM__GETEVENT\mcc_MYMM__getevent\status: 0
-> !!
-> !! OK, handle-state is MCC_K_HANDLE_FIRST
-> !! ^^^^^^^^^^^^^^^^^^
-> !!
-> !! SHOW CALL STACK
-> !!
show calls
! module name routine name line rel PC abs PC
! SHARE$MCC_MYMM_AM 00000000 004E2E5C
!*MCC_DISPATCH im__dispatch 3266 00000147 0010492F
!*MCC_IM im__call_dispatch 5971 00000373 000B372B
!*MCC_IM im__call_selector 5415 000000A3 000B32FF
!*MCC_IM im__call_schedule 5235 00000349 000B3255
!*MCC_IM im__call_first 4535 000002CF 000B2CDB
!*MCC_IM im__call_switch 3976 000000B5 000B2789
!*MCC_IM mcc_call_access 3632 00000216 000B243A
! SHARE$MCC_CONTROL_FM 00000000 004DD353
!*MCC_DISPATCH im__dispatch 3266 00000147 0010492F
!*MCC_IM im__call_dispatch 5971 00000373 000B372B
!*MCC_IM im__call_selector 5415 000000A3 000B32FF
!*MCC_IM im__call_schedule 5235 00000349 000B3255
!*MCC_IM im__call_first 4535 000002CF 000B2CDB
!*MCC_IM im__call_switch 3976 000000B5 000B2789
!*MCC_IM mcc_call_function 3844 0000021E 000B2696
! SHARE$MCC_ALARMS_FM 00000000 00412681
! SHARE$MCC_ALARMS_FM 00000000 00411ABE
! SHARE$MCC_ALARMS_FM 00000000 00414DEC
! SHARE$MCC_ALARMS_FM 00000000 00413F60
! SHARE$MCC_ALARMS_FM 00000000 00414D58
! SHARE$MCC_ALARMS_FM 00000000 00413FF4
! SHARE$MCC_ALARMS_FM 00000000 0040A6D0
! SHARE$MCC_ALARMS_FM 00000000 0040A0B8
!*MCC_DISPATCH im__dispatch 3266 00000147 0010492F
!*MCC_IM im__call_dispatch 5971 00000373 000B372B
!*MCC_IM im__call_selector 5415 000000A3 000B32FF
!*MCC_IM im__call_schedule 5235 00000349 000B3255
!*MCC_IM im__call_first 4535 000002CF 000B2CDB
!*MCC_IM im__call_switch 3976 000000B5 000B2789
!*MCC_IM mcc_call_function 3844 0000021E 000B2696
! SHARE$MCC_ALARMS_FM 00000000 0040B9DA
! SHARE$MCC_ALARMS_FM 00000000 0040B894
! SHARE$MCC_ALARMS_FM 00000000 0040B310
!*MCC_MTS_THREADS TRY_THREAD 2335 00000012 00153D39
!*MCC_MTS_THREADS MTS_THREAD_SHELL 2394 00000089 00153DD5
!*MCC_MTS_THREADS MCC_THREAD_CREATE 213 00000002 001511D6
! SHARE$MCC_MAIN 00000000 000057C6
-> !!
-> !! successive 'STEP/RETURN; EXAMINE/CONDITION R0'
-> !! with some editing on the output to make it more readable
-> !!
!%DEBUG-I-DYNIMGSET, setting image MCC_MYMM_AM
!stepped on return from MCC_MYMM__GETEVENT\mcc_MYMM__getevent\%LINE 3129
to MCC_MYMM__GETEVENT\mcc_MYMM__getevent\%LINE 3129+5
!MCC_MYMM__GETEVENT\mcc_MYMM__getevent\%R0:
%MCC-S-RESPONSE, success with response reply
!%DEBUG-I-DYNIMGSET, setting image MCC_KERNEL_SHR
!stepped on return from SHARE$MCC_MYMM_AM+8801
to MCC_DISPATCH\im__dispatch\%LINE 3275
!MCC_DISPATCH\im__dispatch\%R0:
%MCC-S-RESPONSE, success with response reply
!stepped on return from MCC_DISPATCH\im__dispatch\%LINE 3275
to MCC_IM\im__call_dispatch\%LINE 6019+3
!MCC_IM\im__call_dispatch\%R0:
%MCC-S-RESPONSE, success with response reply
!stepped on return from MCC_IM\im__call_dispatch\%LINE 6019+3
to MCC_IM\im__call_selector\%LINE 5504+3
!MCC_IM\im__call_selector\%R0:
%MCC-S-RESPONSE, success with response reply
!stepped on return from MCC_IM\im__call_selector\%LINE 5504+3
to MCC_IM\im__call_schedule\%LINE 5270+3
!MCC_IM\im__call_schedule\%R0:
%MCC-S-RESPONSE, success with response reply
!stepped on return from MCC_IM\im__call_schedule\%LINE 5270+3
to MCC_IM\im__call_first\%LINE 4618+3
!MCC_IM\im__call_first\%R0:
%MCC-S-RESPONSE, success with response reply
!stepped on return from MCC_IM\im__call_first\%LINE 4618+3
to MCC_IM\im__call_switch\%LINE 4068+3
!MCC_IM\im__call_switch\%R0:
%MCC-S-RESPONSE, success with response reply
!stepped on return from MCC_IM\im__call_switch\%LINE 4068+3
to MCC_IM\mcc_call_access\%LINE 3643+3
!MCC_IM\mcc_call_access\%R0:
%MCC-S-RESPONSE, success with response reply
!stepped on return from MCC_IM\mcc_call_access\%LINE 3643+3
to SHARE$MCC_CONTROL_FM+851
!0\%R0: %MCC-S-RESPONSE, success with response reply
!stepped on return from SHARE$MCC_CONTROL_FM+851
to MCC_DISPATCH\im__dispatch\%LINE 3275
!MCC_DISPATCH\im__dispatch\%R0:
%MCC-S-RESPONSE, success with response reply
!stepped on return from MCC_DISPATCH\im__dispatch\%LINE 3275
to MCC_IM\im__call_dispatch\%LINE 6019+3
!MCC_IM\im__call_dispatch\%R0:
%MCC-S-RESPONSE, success with response reply
!stepped on return from MCC_IM\im__call_dispatch\%LINE 6019+3
to MCC_IM\im__call_selector\%LINE 5504+3
!MCC_IM\im__call_selector\%R0:
%MCC-S-RESPONSE, success with response reply
!stepped on return from MCC_IM\im__call_selector\%LINE 5504+3
to MCC_IM\im__call_schedule\%LINE 5270+3
!MCC_IM\im__call_schedule\%R0:
%MCC-S-RESPONSE, success with response reply
!stepped on return from MCC_IM\im__call_schedule\%LINE 5270+3
to MCC_IM\im__call_first\%LINE 4618+3
!MCC_IM\im__call_first\%R0:
%MCC-S-RESPONSE, success with response reply
!stepped on return from MCC_IM\im__call_first\%LINE 4618+3
to MCC_IM\im__call_switch\%LINE 4068+3
!MCC_IM\im__call_switch\%R0:
%MCC-S-RESPONSE, success with response reply
!stepped on return from MCC_IM\im__call_switch\%LINE 4068+3
to MCC_IM\mcc_call_function\%LINE 3855+3
!MCC_IM\mcc_call_function\%R0:
%MCC-S-RESPONSE, success with response reply
!stepped on return from MCC_IM\mcc_call_function\%LINE 3855+3
to SHARE$MCC_ALARMS_FM+102348
!0\%R0: %MCC-S-NORMAL, normal successful completion
!stepped on return from SHARE$MCC_ALARMS_FM+102348
to SHARE$MCC_ALARMS_FM+99129
!0\%R0: %MCC-S-NORMAL, normal successful completion
!stepped on return from SHARE$MCC_ALARMS_FM+99129
to SHARE$MCC_ALARMS_FM+112161
!0\%R0: %MCC-S-NORMAL, normal successful completion
!stepped on return from SHARE$MCC_ALARMS_FM+112161
to SHARE$MCC_ALARMS_FM+108390
!0\%R0: %MCC-S-NORMAL, normal successful completion
!stepped on return from SHARE$MCC_ALARMS_FM+108390
to SHARE$MCC_ALARMS_FM+112001
!0\%R0: %MCC-S-NORMAL, normal successful completion
!stepped on return from SHARE$MCC_ALARMS_FM+112001
to SHARE$MCC_ALARMS_FM+108561
!0\%R0: %MCC-S-NORMAL, normal successful completion
!stepped on return from SHARE$MCC_ALARMS_FM+108561
to SHARE$MCC_ALARMS_FM+69947
!0\%R0: %MCC-S-NORMAL, normal successful completion
!stepped on return from SHARE$MCC_ALARMS_FM+69947
to SHARE$MCC_ALARMS_FM+67792
!0\%R0:
%MCC-S-RESPONSE, success with response reply
!stepped on return from SHARE$MCC_ALARMS_FM+67792
to MCC_DISPATCH\im__dispatch\%LINE 3275
!MCC_DISPATCH\im__dispatch\%R0:
%MCC-S-RESPONSE, success with response reply
!stepped on return from MCC_DISPATCH\im__dispatch\%LINE 3275
to MCC_IM\im__call_dispatch\%LINE 6019+3
!MCC_IM\im__call_dispatch\%R0:
%MCC-S-RESPONSE, success with response reply
!stepped on return from MCC_IM\im__call_dispatch\%LINE 6019+3
to MCC_IM\im__call_selector\%LINE 5504+3
!MCC_IM\im__call_selector\%R0:
%MCC-S-RESPONSE, success with response reply
!stepped on return from MCC_IM\im__call_selector\%LINE 5504+3
to MCC_IM\im__call_schedule\%LINE 5270+3
!MCC_IM\im__call_schedule\%R0:
%MCC-S-RESPONSE, success with response reply
!stepped on return from MCC_IM\im__call_schedule\%LINE 5270+3
to MCC_IM\im__call_first\%LINE 4618+3
!MCC_IM\im__call_first\%R0:
%MCC-S-RESPONSE, success with response reply
!stepped on return from MCC_IM\im__call_first\%LINE 4618+3
to MCC_IM\im__call_switch\%LINE 4068+3
!MCC_IM\im__call_switch\%R0:
%MCC-S-RESPONSE, success with response reply
!stepped on return from MCC_IM\im__call_switch\%LINE 4068+3
to MCC_IM\mcc_call_function\%LINE 3855+3
!MCC_IM\mcc_call_function\%R0:
%MCC-S-RESPONSE, success with response reply
-> !!
-> !! NOW TO THE RESULT I DON'T UNDERSTAND
-> !!
!stepped on return from MCC_IM\mcc_call_function\%LINE 3855+3
to SHARE$MCC_ALARMS_FM+74506
!0\%R0: %MCC-E-INV_HANDLE_STAT, software error: invalid handle state
-> !! ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-> !! WHO IS RESPONSIBLE FOR THIS ONE, IS IT ME OR...????
-> !!
sho call
! module name routine name line rel PC abs PC
! SHARE$MCC_ALARMS_FM 00000000 0040BB0A
! SHARE$MCC_ALARMS_FM 00000000 0040B894
! SHARE$MCC_ALARMS_FM 00000000 0040B310
!*MCC_MTS_THREADS TRY_THREAD 2335 00000012 00153D39
!*MCC_MTS_THREADS MTS_THREAD_SHELL 2394 00000089 00153DD5
!*MCC_MTS_THREADS MCC_THREAD_CREATE 213 00000002 001511D6
! SHARE$MCC_MAIN 00000000 000057C6
|
1064.3 | Where did you get the time_spec argument? | TOOK::GUERTIN | I do this for a living -- really | Wed May 29 1991 09:53 | 5 |
| How did you get the "time_spec" argument? Did you just pass into the
mcc_event_get() routine the same time_spec argument that you received
through the MCC Call, or did you build your own (or pass in null)?
-Matt.
|
1064.4 | same time_spec as in the MCC Call | STKHLM::BERGGREN | Nils Berggren EIS/Project dpmt, Sweden DTN 876-8287 | Wed May 29 1991 13:07 | 9 |
| repl .3
>>> How did you get the "time_spec" argument? Did you just pass into the
>>> mcc_event_get() routine the same time_spec argument that you received
>>> through the MCC Call,
Yes, that's the way.
I bypassed the validation of the time_spec by setting the
valid_time_spec -field to 0.
|
1064.5 | Sorry, that is MCC_K_NULL_PTR as time_spec! | STKHLM::BERGGREN | Nils Berggren EIS/Project dpmt, Sweden DTN 876-8287 | Wed May 29 1991 13:27 | 6 |
| repl .4
SORRY!
I was wrong in .4; I pass MCC_K_NULL_PTR as the time_spec argument.
/Nils
|
1064.6 | Well then, try it the other way! | TOOK::GUERTIN | I do this for a living -- really | Wed May 29 1991 16:39 | 1 |
|
|
1064.7 | the other way makes no difference | STKHLM::BERGGREN | Nils Berggren EIS/Project dpmt, Sweden DTN 876-8287 | Thu May 30 1991 10:14 | 5 |
| repl .6
So I did and it makes no difference.
/Nils
|
1064.8 | I think that should have worked. | TOOK::GUERTIN | I do this for a living -- really | Thu May 30 1991 10:43 | 6 |
| Did you look at the Event Manager trace log when you passed the same
time_spec argument down to the mcc_event_get() and could you post the
Event Manager trace log here? Also, what "handle" argument are you
using? Your own or the one passed in thru the MCC Call interface?
-Matt.
|
1064.9 | try this | TOOK::CALLANDER | Jill Callander DTN 226-5316 | Thu May 30 1991 13:54 | 14 |
| could you please try the getevent with a FOR clause on it from the FCL?
This will help to see if the multi transaction handle usage is correct
without having to go through alarms. By simply entering a getevent
without the FOR clause you are not doing what alarms does when it
calls you.
As to the handle of first, could you also check something there for me as well.
Check to see what handle you are passing into the event manager, is this
the same one you are trying to return to the alarms FM? If so is it the
one that was passed in? The IM on a callback is very sensitive to the
address of the call arguments (you can not return a different one then
the one originally passed in, or things will fail unpredictably).
jill
|
1064.10 | log from GETEVENT ... ,FOR ... | STKHLM::BERGGREN | Nils Berggren EIS/Project dpmt, Sweden DTN 876-8287 | Fri May 31 1991 05:59 | 65 |
| repl .9
log from getevent with for-clause
DECmcc (V1.1.0)
MCC> getevent mymm ABCD any event, for start +00:00:01
Tracing error paths in Event Manager
Tracing Event code path in GET
Tracing Event code path in PUT
Event_Get starting
Event_Get processing Partition argument
Event_Get Input Arguments ...
in_entity =
entity [0] wild = NOT_WILD class = 700 id = 1 type = 4
instance = ..ABCD
%X010441424344
Partition = 15
Filter = MCC_K_NULL_PTR
time_spec = MCC_K_NULL_PTR
Handle context not set up yet
Event_Get handle state = MCC_K_HANDLE_FIRST
Event_Get building a PRMB for this request
Event_Get creating a Heartbeat thread for this request
Event_Get setting the Heartbeat thread-id 1000A
Event_Get creating TimeStamps
Event_Get requesting NEXT event
Going to wait for the event now...
Event_Get was Signalled
Copying Event Data to user supplied buffers
Event_Get converting time to supplied time type
Event_Get deleting global event data
Event_Get performing general clean up
THUMP!
Failed to dequeue event:
%MCC-E-NOMOREVT, no more events in event queue
Event_Get Output Arguments ...
Handle context not set up yet
out_entity =
entity [0] wild = NOT_WILD class = 700 id = 1 type = 4
instance = ..ABCD
%X010441424344
timestamp = 31-MAY-1991 09:29:59.88
Event Code = 771
Event Data =
Dump of MCC Descriptor reveals:
mcc_w_maxstrlen = 1024
mcc_w_curlen = 36
mcc_b_flags = 0
mcc_b_ver = 1
mcc_l_id = 1
mcc_l_dt = MCC_K_DT_ILV
mcc_a_pointer = �.. �...�.......JUST AN EVENT-REPORT
%XA1820020A182001CBF860382001681144A55535420414E204556454E542D5245504F5254
mcc_a_link = MCC_K_NULL_PTR
Event_Get completed
MYMM ABCD
AT 31-MAY-1991 09:30:03 Any Event
Nu kom ett MYMM event ! swedish and means here's an event
%MCC-E-NOENTITY, no corresponding entity instance exists
|
1064.11 | log with same time_spec | STKHLM::BERGGREN | Nils Berggren EIS/Project dpmt, Sweden DTN 876-8287 | Fri May 31 1991 06:00 | 191 |
| repl .8
here's a log when I pass the same time_spec in to the event_get-routine
as I get in the MCC_CALL.
DECmcc (V1.1.0)
MCC> enable mcc 0 alarm rule ev1
MCC 0 ALARMS RULE ev1
AT 31-MAY-1991 10:24:21
Tracing error paths in Event Manager
Tracing Event code path in GET
Tracing Event code path in PUT
Event_Put starting
Event_Put processing Partition argument
Event_Put Input Arguments ...
p_ent_spec =
entity [0] wild = NOT_WILD class = 8 id = 0 type = 5
instance =
entity [1] wild = NOT_WILD class = 5 id = 1 type = 4
instance = ..ev1
%X0103657631
Partition = 15
Event Code = 29
Event Data =
Dump of MCC Descriptor reveals:
mcc_w_maxstrlen = 512
mcc_w_curlen = 37
mcc_b_flags = 0
mcc_b_ver = 1
mcc_l_id = 29
mcc_l_dt = MCC_K_DT_ILV
mcc_a_pointer = �..!..(occurs(mymm ABCD any events)).
%XBD820021951F286F6363757273286D796D6D204142434420616E79206576656E7473292900
mcc_a_link = MCC_K_NULL_PTR
Timestamp = 31-MAY-1991 10:24:21.53
Event_Put getting current time
Event_Put converting user supplied time into BAT
Event_Put building an EDS structure to store Event Data
Event_Put creating an AHS
Event_Put Locking Subscriber structures
Event_Put Subscriber searching for first(/next) matching request
Event_Put Subscriber Handle state = MCC_K_HANDLE_FIRST
Event_Put Subscriber finished matching requests
Event_Put Unlocking Subscriber structures
Event_Put cleaning up
Event_Get starting
Event_Get processing Partition argument
Event_Get Input Arguments ...
in_entity =
entity [0] wild = NOT_WILD class = 700 id = 1 type = 4
instance = ..ABCD
%X010441424344
Partition = 15
Filter = MCC_K_NULL_PTR
time_spec =
time frame at 2a74a0 hex
schedule
is NULL
scope
contains 1 elements
element 0
begin is ABSOLUTE: 31-MAY-1991 10:24:23.16
end is ABSOLUTE: 17-DEC-1991 10:24:23.16
periodicity is NULL
period_end is NULL
Handle context not set up yet
Event_Get handle state = MCC_K_HANDLE_FIRST
Event_Get building a PRMB for this request
Event_Get creating a Heartbeat thread for this request
Event_Get setting the Heartbeat thread-id 1000C
Event_Get creating TimeStamps
Event_Get creating a Maintainer thread for this request
Waiting until -> 31-MAY-1991 10:24:25.18
Start_time = 31-MAY-1991 10:24:23.16
End_time = 17-DEC-1991 10:24:23.16
FINAL wait time -> 17-DEC-1991 10:24:23.16
Event_Get setting Maintainer thread-id 1000E
Event_Get setting Handle state to MCC_K_HANDLE_MORE
Going to wait for the event now...
Event_Get was Signalled
Copying Event Data to user supplied buffers
Event_Get converting time to supplied time type
Event_Get deleting global event data
Event_Get performing general clean up
Event_Get Output Arguments ...
Context Ident = 135ACE
Next RMB = 0, Prev RMB = 42C670
PRB List = 42C8F0, HEAD_EDQ = 42C810
SOI start = 31-MAY-1991 10:24:23.16
SOI end = 17-DEC-1991 10:24:23.16
TIME_STAMP = 31-MAY-1991 09:24:25.29
Heartbeat Thrid = 0, Timeout Thrid = 0
FLAGS: Frozen = 0, Delete = 0, Next = 0
out_entity =
entity [0] wild = NOT_WILD class = 700 id = 1 type = 4
instance = ..ABCD
%X010441424344
timestamp = 31-MAY-1991 10:24:43.07
Event Code = 771
Event Data =
Dump of MCC Descriptor reveals:
mcc_w_maxstrlen = 2048
mcc_w_curlen = 36
mcc_b_flags = 0
mcc_b_ver = 1
mcc_l_id = 1
mcc_l_dt = MCC_K_DT_ILV
mcc_a_pointer = �.. �...�.......JUST AN EVENT-REPORT
%XA1820020A182001CBF860382001681144A55535420414E204556454E542D5245504F5254
mcc_a_link = MCC_K_NULL_PTR
Event_Get completed
Event_Put starting
Event_Put processing Partition argument
Event_Put Input Arguments ...
p_ent_spec =
entity [0] wild = NOT_WILD class = 8 id = 0 type = 5
instance =
entity [1] wild = NOT_WILD class = 5 id = 1 type = 4
instance = ..ev1
%X0103657631
Partition = 16
Event Code = 26
Event Data =
Dump of MCC Descriptor reveals:
mcc_w_maxstrlen = 512
mcc_w_curlen = 182
mcc_b_flags = 0
mcc_b_ver = 1
mcc_l_id = 26
mcc_l_dt = MCC_K_DT_ILV
mcc_a_pointer = �..��...�...�.............�..........ABCD.X%MCC-E-INV_HANDLE_STAT, software error: invalid handle state, The rule has been disabled...�l...�.......<...(occurs(mymm ABCD any events)).
%XBA8200B2BB82008DA1820089A1820019A0820015810101820202BC83010184010485060104414243448258254D43432D452D494E565F48414E444C455F535441542C20736F667477617265206572726F723A20696E76616C69642068616E646C652073746174652C205468652072756C6520686173206265656E2064697361626C65648310A0D46C8F1C1FCA01FFFFFFFFFFFF3C10951F286F6363757273286D796D6D204142434420616E79206576656E7473292900
mcc_a_link = MCC_K_NULL_PTR
Timestamp = 31-MAY-1991 10:24:45.93
Event_Put getting current time
Event_Put converting user supplied time into BAT
Event_Put building an EDS structure to store Event Data
Event_Put creating an AHS
Event_Put Locking Subscriber structures
Event_Put Subscriber searching for first(/next) matching request
Event_Put Subscriber Handle state = MCC_K_HANDLE_FIRST
Event_Put Subscriber finished matching requests
Event_Put Unlocking Subscriber structures
Event_Put cleaning up
Event_Put starting
Event_Put processing Partition argument
Event_Put Input Arguments ...
p_ent_spec =
entity [0] wild = NOT_WILD class = 8 id = 0 type = 5
instance =
entity [1] wild = NOT_WILD class = 5 id = 1 type = 4
instance = ..ev1
%X0103657631
Partition = 15
Event Code = 30
Event Data =
Dump of MCC Descriptor reveals:
mcc_w_maxstrlen = 512
mcc_w_curlen = 131
mcc_b_flags = 0
mcc_b_ver = 1
mcc_l_id = 30
mcc_l_dt = MCC_K_DT_ILV
mcc_a_pointer = �.....(occurs(mymm ABCD any events)).....Y%MCC-E-INV_HANDLE_STAT, software error: invalid handle state, The rule has been disabled.
%XBE82007F951F286F6363757273286D796D6D204142434420616E79206576656E74732929009601019759254D43432D452D494E565F48414E444C455F535441542C20736F667477617265206572726F723A20696E76616C69642068616E646C652073746174652C205468652072756C6520686173206265656E2064697361626C656400
mcc_a_link = MCC_K_NULL_PTR
Timestamp = 31-MAY-1991 10:24:45.93
Event_Put getting current time
Event_Put converting user supplied time into BAT
Event_Put building an EDS structure to store Event Data
Event_Put creating an AHS
Event_Put Locking Subscriber structures
Event_Put Subscriber searching for first(/next) matching request
Event_Put Subscriber Handle state = MCC_K_HANDLE_FIRST
Event_Put Subscriber finished matching requests
Event_Put Unlocking Subscriber structures
Event_Put cleaning up
MCC> exit
THUMP!
THUMP!Maintainer Thread was alerted during Timer Wait:
%MCC-E-ALERT_TERMREQ, thread termination requested
|
1064.12 | using own handle in event_get-call | STKHLM::BERGGREN | Nils Berggren EIS/Project dpmt, Sweden DTN 876-8287 | Fri May 31 1991 06:03 | 74 |
| repl .8 and .9
>>> Also, what "handle" argument are you using?
>>> Your own or the one passed in thru the MCC Call interface?
>>> Check to see what handle you are passing into the event manager, is this
>>> the same one you are trying to return to the alarms FM? If so is it the
>>> one that was passed in? The IM on a callback is very sensitive to the
>>> address of the call arguments (you can not return a different one then
>>> the one originally passed in, or things will fail unpredictably).
I only check the state on the handle passed in to the
getevent_directive routine. Then I create a new handle
which is passed into the eventmanager and deleted afterwards
in the end_directive-part.
this is what I do in pseudocode
===================================
mcc_MYMM__getevent(verb, in_entity, attribute,
time_spec,in_q, in_p, handle,
out_entity, time_stamp, out_p, out_q)
{
begin_directive(&call_args, &p_context);
do_directive(&call_args, &p_context);
cvr = end_directive(&call_args, &p_context, &status);
return(cvr);
}
begin_directive(p_callargs, p_context)
{
get state of handle;
if MCC_K_HANDLE_FIRST init_handle_first(p_callargs, p_context);
else
...
}
init_handle_first(p_callargs, p_context)
{
init alloc list;
validate callargs; /* don't validate time_spec */
mcc_ahs_create( &(*p_context)->event_handle );
}
do_directive(p_callargs, p_context)
{
status = mcc_event_get(
p_callargs->p_in_entity, /* Event Entity */
&MCC_K_PRT_CONFIGURATION_EVENTS, /* event_partition */
MCC_K_NULL_PTR, /* Event filter wild */
MCC_K_NULL_PTR, /* time spec */
(*p_context)->event_handle, /* handle */
p_callargs->p_out_entity, /* out_entity */
p_callargs->p_time_stamp, /* time stamp */
&(*p_context)->event_code, /* event code */
p_callargs->p_out_p); /* event data */
....
}
end_directive(p_callargs, p_context, p_status)
{
...
mcc_desframe_set_cvr_and_reply(p_callargs, p_context, &cvr)
update_call_handle(p_callargs, p_context);
}
update_call_handle(p_callargs, p_context)
{
mcc_desframe_free_alloc_list(*p_context);
mcc_ahs_delete( &(*p_context)->event_handle );
mcc_free(*p_context);
}
|
1064.13 | Doesn't agree with what is in the SRM | TOOK::GUERTIN | I do this for a living -- really | Fri May 31 1991 10:55 | 5 |
| It doesn't sound like you are following the handle protocol for the
MCC call interface, AHS, and Event Manager. There are several problems
with your algorithm.
-Matt.
|
1064.14 | 2 ideas... The first... | PHONE::ALLAIN | | Fri May 31 1991 11:30 | 38 |
| Re: .12
My code looks like yours and it works fine.
The first thing is:
I had a problem with the p_callargs->p_out_p argument for the mcc_event_get.
This p_out_p is gonna be build by the call to mcc_desframe_set_cvr_and_reply.
I use another descriptor for this argument, and then, in my .h file I got
something like this:
static
dt_reply_arg_list
ReplyArg_event_data [] = {
offsetof(dt__LocalContext,ReplyArg_event_report),
MCC_K_ARG_EVENT_REPORT,
REPLY_K_END_OF_ARG_LIST
};
static dt_reply_table ReplyTable[] = {
/* 1 */ MCC_S_RESPONSE,
MCC_K_EVENT_RECEIVED,
&ReplyArg_event_data,
where ReplyArg_event_report is the descriptor I'm using for the event report
in teh mcc_event_get.
Then the call to mcc_desframe_set_cvr_and_reply will build from the .H file
the p_out_p.
You may wanna check the status returned by this mcc_desframe_set_cvr_and_reply
in your code, you'll see the problem.
Second idea in the next reply...
Francois
|
1064.15 | ... the second idea... | PHONE::ALLAIN | | Fri May 31 1991 11:32 | 11 |
| At the end of my do_directive in the getevent stuff, I have this:
uw_status = mcc_ahs_get_state ( (*p_context)->event_handle, &state);
if (GOOD(uw_status) && (state == MCC_K_HANDLE_MORE))
(*p_context)->flags.more_data = TRUE;
Try it
Francois
|
1064.16 | Looks like an illegal response from the Service Provider | TOOK::GUERTIN | I do this for a living -- really | Fri May 31 1991 16:11 | 24 |
| RE:.12, etc.
The "time_spec" and "handle" are tightly coupled in an MCC Call for the
GETEVENT verb. If the "time_spec" specifies a scope of interest, then
the Client can only have one of four possible returns:
o Response of MCC_K_GETEVENT_NOMORE - which means the Service Provider
got back MCC_S_NOEVENTREC from the Event Manager. And the Handle
state is *always* FIRST.
o Response of MCC_K_GETEVENT_SUCCESS - which means that the Service
Provider is returning an Event Report. And the Handle state is
*always* MORE.
o A specialized exception for some miscellaneous problem.
o A CVR for some miscellaneous MCC Call error.
It would appear as though you are returning a Handle state of FIRST
with a Response of an Event Report. As you can see from above, that is
an illegal combination for a time_spec with a scope of interest.
-Matt.
|
1064.17 | sorry about that, need a duration | TOOK::CALLANDER | Jill Callander DTN 226-5316 | Fri May 31 1991 16:18 | 7 |
| Sorry, I should have been clearer. I wanted you to try it with
a for duration on it so that we could see it call back to your
xM after returning the first event. Do this with the MCC_FCL_PM_LOG
set to 8.
thanks
(sorry for the inconvenience)
|
1064.18 | Q: Who can return an Invalid Handle State ? | NANOVX::ROBERTS | Keith Roberts - DECmcc Toolkit Team | Fri May 31 1991 17:18 | 30 |
| Jill is quite correct about how alarms calls you get-event directive,
that is to command would be:
getevent <entity> any <partition> event, for duration 200-00:00:00
The duration of 200 days is said to be 'forever' and is currently a v1.1
limitation.
When *your* getevent directive calls the event manager with the time-spec
as passed down from the Alarms code (ie, the for duration 200 days), the
event manager will return your event data ... and A HANDLE OF MORE
Like "a few notes back" said, you have to check the value of the event
handle (ahs_get_state) and set the 'more-data' flag is the event handle
is MORE. Then finish packaging up your event report, and Alarms will
call you back -- you keep doing this until the event manager returns
a handle of done .. at which time you can delete the handle.
You cannot delete a Handle with a state of MORE -- it must have a state
of FIRST. I imagine this is where the bad status is coming from.
Your Getevent directive must support Call Handle = Cancel ... you then
would set the handle to cancel and call the event manager (event_get). This
tells the event manager to clean up memory allocations and data requests.
it then returns MCC_S_CANCELED.
Hope I made some sense, and this helps.
Keith Roberts
DECmcc Toolkit Team
|
1064.19 | Works now, THANK YOU ALL! | STKHLM::BERGGREN | Nils Berggren EIS/Project dpmt, Sweden DTN 876-8287 | Thu Jun 06 1991 10:02 | 8 |
| repl to all of you who helped me.
Soory for not replying earlier, but I was gone. Alot of the replies
made sence to me so now, finaly, I got it to work (with some other
problems, couldn't you tell...:-), but I'll be back about them later).
Thanks alot
/Nils
|