The nature of WS-ReliableMessaging is that network and
server failures are assumed, and therefore the target Web service
or message store might not be available. In these cases, message sequences
cannot be completed and collections of Web service messages are held
awaiting transmission. You can use the SystemOut.log file,
system events, and the runtime administrative panels to monitor the
system and detect and fix problems with WS-ReliableMessaging.
About this task
If a sequence fails, a message is written to the application
server SystemOut.log file and a system event is generated.
Therefore you can detect failed sequences by looking at the SystemOut.log file,
or by writing an event listener (or using third party software) to
monitor system events.
For
more detailed status information at run time, and facilities to help
you fix problems, use the WS-ReliableMessaging administrative console
runtime panels. These panels are available at many different scopes
(for example cell; application server; cluster). For a full list of
the WS-ReliableMessaging runtime panels, and details of the scopes
at which they are available, see WS-ReliableMessaging - administrative console panels.
At
all scopes, the parent panel is
Reliable messaging state settings.
From this panel you can investigate each of the three key runtime
aspects of reliable messaging:
- Message stores
- Inbound sequences
- Outbound sequences
The following icons are displayed here and on several other reliable messaging runtime panels:
Note that for troubleshooting purposes you only need to follow links to the sub-panels if states other than "OK" are displayed.
To
use the reliable messaging runtime panels to detect and fix problems
with WS-ReliableMessaging, complete one or more of the following steps:
- Investigate problems with message stores.
In the navigation pane, click To view this pane in the console, click one of the paths to this panel.
For example .
The list of reliable messaging storage managers for the current scope
is displayed in the Message store collection form.
For the managed qualities of service, the messages are written to a messaging engine. For the unmanaged non-persistent quality of service, the messages are stored in memory. For in-memory stores the only possible value is "Running". For messages stored by a messaging engine, the possible values are "Running" or "Messaging engine not contactable", probably because the messaging engine is not running. The "OK" icon indicates that the message store is running. If the messaging engine is not contactable, the "Error" icon is displayed.
For
each message store in the list, the name of the associated reliable
messaging application is given in the description column.
If a messaging engine is not contactable, restart the message store
for that application.
- Investigate problems with inbound sequences.
In the navigation pane, clickTo view this pane in the console, click one of the paths to this panel.
For example . The runtime state of each of the inbound sequences for the current scope is displayed in the Inbound sequence collection form.
You can use a filter
to look at sequences that are in a particular state (for example "Failed
due to missing message") or that have a large number of messages
awaiting dispatch to applications. If the sequence status is Error,
there is a problem with the sequence and the source server hosting
the other end of the sequence has terminated it. If the sequence is
active and there are a large number of messages awaiting dispatch
to the application, then there could be a problem with the application
or, if in-order delivery is specified, delivery could be held up because
the sequence has gaps in it.
You can select one or more sequences,
then use the buttons provided to dispatch the messages to their associated
applications, to export the messages to compressed files, to close or terminate
the selected sequences, or to delete the selected sequences and all
their messages.
Attention: Delete or terminate sequences
only if necessary, and if you are sure that the sequence is inactive.
If you delete or terminate an active sequence, the resulting messaging
behavior is unpredictable and can cause loss of messages. For example,
if by deleting a sequence you delete an outbound request message for
an asynchronous message exchange, further processing of responses
on that sequence is likely to fail. If you are not sure whether
the sequence is still active, do not delete or terminate it; the system
automatically deletes sequences that have been inactive for 24 hours.
To
see more detailed information about a particular sequence, click the
Sequence identifier field.
The
Inbound sequences settings form is displayed.
This detailed information includes addressing information to help
you identify the source of the sequence, and the value (true or false)
for "in-order delivery" for the sequence. From this panel you can
also display the following forms:
- The Acknowledgement state collection form. (The ranges of message sequence numbers received from the WS-ReliableMessaging source. If more than one range is displayed, this indicates a gap in the messages received. If "In-order delivery" is selected for the sequence manager, messages with a sequence number greater than the lowest gap cannot be delivered to the application until the gap is closed.)
- The Inbound message collection form.
(The messages on the inbound sequence. You
can use this form to delete individual messages.)
- The Message settings form. (The contents
of an individual message in the sequence.)
For more guidance on diagnosing problems with inbound
sequences, see Diagnosing the problem when a reliable messaging source cannot deliver its messages
- Investigate problems with outbound sequences.
In the navigation pane, click To view this pane in the console, click one of the paths to this panel.
For example . The runtime state of each of the outbound sequences for the current scope is displayed in the Outbound sequence collection form.
You can use a filter
to look at sequences that are in a particular state. For example,
the state "Cannot contact the remote endpoint" indicates that
the sequence has been established but the reliable messaging destination
has stopped acknowledging messages (which, coupled with a high number
of messages awaiting transmission, could indicate a potential problem).
If the sequence status is Error, there is a problem with the
sequence and the server hosting the other end of the sequence has
terminated it.
You can select one or more sequences, and use one of the buttons
provided to export the messages to compressed files, to close or terminate
the selected sequences, or to delete the selected sequences and all
their messages. For more information about deleting outbound sequences,
see Deleting a failed WS-ReliableMessaging outbound sequence.
Attention: Delete or terminate sequences
only if necessary, and if you are sure that the sequence is inactive.
If you delete or terminate an active sequence, the resulting messaging
behavior is unpredictable and can cause loss of messages. For example,
if by deleting a sequence you delete an outbound request message for
an asynchronous message exchange, further processing of responses
on that sequence is likely to fail. If you are not sure whether
the sequence is still active, do not delete or terminate it; the system
automatically deletes sequences that have been inactive for 24 hours.
To see more detailed
information about a particular sequence, click the
Sequence identifier field.
The
Outbound sequences settings form is
displayed. This detailed information includes addressing information
to help you identify the server at which the sequence is targeted.
From this panel you can also display the following forms:
- The Outbound message collection form.
(The messages on the outbound sequence. You
can use this form to delete individual messages.)
- The Message settings form. (The contents
of an individual message in the sequence.)
For more guidance on diagnosing problems with outbound
sequences, see Diagnosing and recovering a WS-ReliableMessaging outbound sequence that is in retransmitting state.