version 1.24, 2006/11/14 18:34:59
|
version 1.25, 2007/03/16 17:16:58
|
|
|
| |
message->_async = 0; | message->_async = 0; |
| |
PEG_TRACE_STRING(TRC_BINARY_MSG_HANDLER, Tracer::LEVEL4, |
PEG_TRACE_CSTRING(TRC_BINARY_MSG_HANDLER, Tracer::LEVEL4, |
"Converting legacy message to AsyncLegacyOperationStart"); | "Converting legacy message to AsyncLegacyOperationStart"); |
op = this->get_op(); | op = this->get_op(); |
asyncRequest = new AsyncLegacyOperationStart( | asyncRequest = new AsyncLegacyOperationStart( |
|
|
if (request->getType() == async_messages::ASYNC_LEGACY_OP_START || | if (request->getType() == async_messages::ASYNC_LEGACY_OP_START || |
request->getType() == async_messages::ASYNC_LEGACY_OP_RESULT) | request->getType() == async_messages::ASYNC_LEGACY_OP_RESULT) |
{ | { |
PEG_TRACE_STRING(TRC_BINARY_MSG_HANDLER, Tracer::LEVEL4, |
PEG_TRACE_CSTRING(TRC_BINARY_MSG_HANDLER, Tracer::LEVEL4, |
"Processing ASYNC_LEGACY_OP_* Message."); | "Processing ASYNC_LEGACY_OP_* Message."); |
request->op->processing(); | request->op->processing(); |
| |
|
|
} | } |
catch (ListFull&) | catch (ListFull&) |
{ | { |
PEG_TRACE_STRING(TRC_BINARY_MSG_HANDLER, Tracer::LEVEL4, |
PEG_TRACE_CSTRING(TRC_BINARY_MSG_HANDLER, Tracer::LEVEL4, |
"List Full."); | "List Full."); |
Base::_handle_async_request(request); | Base::_handle_async_request(request); |
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
|
|
} | } |
catch (...) | catch (...) |
{ | { |
PEG_TRACE_STRING(TRC_BINARY_MSG_HANDLER, Tracer::LEVEL4, |
PEG_TRACE_CSTRING(TRC_BINARY_MSG_HANDLER, Tracer::LEVEL4, |
"List Error."); | "List Error."); |
Base::_handle_async_request(request); | Base::_handle_async_request(request); |
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
return; | return; |
} | } |
| |
PEG_TRACE_STRING(TRC_BINARY_MSG_HANDLER, Tracer::LEVEL4, |
PEG_TRACE_CSTRING(TRC_BINARY_MSG_HANDLER, Tracer::LEVEL4, |
"Allocating pooled thread to handle binary message."); | "Allocating pooled thread to handle binary message."); |
if (_thread_pool->allocate_and_awaken( | if (_thread_pool->allocate_and_awaken( |
(void*)this, BinaryMessageHandler::handle_binary_message) != | (void*)this, BinaryMessageHandler::handle_binary_message) != |
|
|
Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE, | Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE, |
"Not enough threads to handle binary message."); | "Not enough threads to handle binary message."); |
| |
Tracer::trace(TRC_BINARY_MSG_HANDLER, Tracer::LEVEL2, |
PEG_TRACE((TRC_BINARY_MSG_HANDLER, Tracer::LEVEL2, |
"Could not allocate thread for %s. " \ | "Could not allocate thread for %s. " \ |
"Queue has %d messages waiting. ", | "Queue has %d messages waiting. ", |
getQueueName(), | getQueueName(), |
_msg_q.count()); |
_msg_q.count())); |
} | } |
} | } |
else if (request->getType() == async_messages::CIMSERVICE_STOP) | else if (request->getType() == async_messages::CIMSERVICE_STOP) |
{ | { |
PEG_TRACE_STRING(TRC_BINARY_MSG_HANDLER, Tracer::LEVEL4, |
PEG_TRACE_CSTRING(TRC_BINARY_MSG_HANDLER, Tracer::LEVEL4, |
"Handling CIMServer Stop Message"); | "Handling CIMServer Stop Message"); |
Base::_handle_async_request(request); | Base::_handle_async_request(request); |
} | } |
else | else |
{ | { |
// pass all other operations to the default handler | // pass all other operations to the default handler |
PEG_TRACE_STRING(TRC_BINARY_MSG_HANDLER, Tracer::LEVEL4, |
PEG_TRACE_CSTRING(TRC_BINARY_MSG_HANDLER, Tracer::LEVEL4, |
"Passing message to parent."); | "Passing message to parent."); |
#ifdef BINARYMESSAGEHANDLER_DEBUG | #ifdef BINARYMESSAGEHANDLER_DEBUG |
PEGASUS_STD(cout) << "Unexpected Message: type " << | PEGASUS_STD(cout) << "Unexpected Message: type " << |
|
|
} | } |
catch (...) | catch (...) |
{ | { |
PEG_TRACE_STRING(TRC_BINARY_MSG_HANDLER, Tracer::LEVEL2, |
PEG_TRACE_CSTRING(TRC_BINARY_MSG_HANDLER, Tracer::LEVEL2, |
"Internal DQueue Error."); | "Internal DQueue Error."); |
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
return 0; | return 0; |
|
|
// there is no response so there has to be a request | // there is no response so there has to be a request |
if (op->_request.get() == 0) | if (op->_request.get() == 0) |
{ | { |
PEG_TRACE_STRING(TRC_BINARY_MSG_HANDLER, Tracer::LEVEL2, |
PEG_TRACE_CSTRING(TRC_BINARY_MSG_HANDLER, Tracer::LEVEL2, |
"Received OpNode with no messages."); | "Received OpNode with no messages."); |
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
return 0; | return 0; |
|
|
case CIM_EXPORT_INDICATION_REQUEST_MESSAGE: | case CIM_EXPORT_INDICATION_REQUEST_MESSAGE: |
case CIM_DELETE_CLASS_REQUEST_MESSAGE: | case CIM_DELETE_CLASS_REQUEST_MESSAGE: |
case CIM_DELETE_INSTANCE_REQUEST_MESSAGE: | case CIM_DELETE_INSTANCE_REQUEST_MESSAGE: |
PEG_TRACE_STRING(TRC_BINARY_MSG_HANDLER, Tracer::LEVEL4, |
PEG_TRACE_CSTRING(TRC_BINARY_MSG_HANDLER, Tracer::LEVEL4, |
"Received Unexpected legacy request message."); | "Received Unexpected legacy request message."); |
myself->_handleRequest(op, legacy); | myself->_handleRequest(op, legacy); |
break; | break; |
|
|
break; | break; |
case CIM_EXPORT_INDICATION_RESPONSE_MESSAGE: | case CIM_EXPORT_INDICATION_RESPONSE_MESSAGE: |
default: | default: |
PEG_TRACE_STRING(TRC_BINARY_MSG_HANDLER, Tracer::LEVEL4, |
PEG_TRACE_CSTRING(TRC_BINARY_MSG_HANDLER, Tracer::LEVEL4, |
"Received Unexpected legacy response message."); | "Received Unexpected legacy response message."); |
myself->_handleResponse(op, legacy); | myself->_handleResponse(op, legacy); |
break; | break; |
|
|
} | } |
else | else |
{ | { |
PEG_TRACE_STRING(TRC_BINARY_MSG_HANDLER, Tracer::LEVEL4, |
PEG_TRACE_CSTRING(TRC_BINARY_MSG_HANDLER, Tracer::LEVEL4, |
"Damaged or uninitialized AsyncOpNode received."); | "Damaged or uninitialized AsyncOpNode received."); |
} | } |
} | } |
|
|
} | } |
catch (...) | catch (...) |
{ | { |
PEG_TRACE_STRING(TRC_DISCARDED_DATA, Tracer::LEVEL2, |
PEG_TRACE_CSTRING(TRC_DISCARDED_DATA, Tracer::LEVEL2, |
"Caught unrecognized exception. Exiting handle_binary_message."); | "Caught unrecognized exception. Exiting handle_binary_message."); |
} | } |
| |
|
|
{ | { |
// Should this exception really just be ignored? | // Should this exception really just be ignored? |
// It seems like binary_message_handler should catch it. | // It seems like binary_message_handler should catch it. |
PEG_TRACE_STRING(TRC_DISCARDED_DATA, Tracer::LEVEL2, |
PEG_TRACE_CSTRING(TRC_DISCARDED_DATA, Tracer::LEVEL2, |
"Unrecognized exception caught and ignored by _handleRequest()."); | "Unrecognized exception caught and ignored by _handleRequest()."); |
} | } |
| |
|
|
MessageQueue::lookup(((CIMRequestMessage*)msg)->queueIds.top()); | MessageQueue::lookup(((CIMRequestMessage*)msg)->queueIds.top()); |
if (dest == 0) | if (dest == 0) |
{ | { |
PEG_TRACE_STRING(TRC_BINARY_MSG_HANDLER, Tracer::LEVEL4, |
PEG_TRACE_CSTRING(TRC_BINARY_MSG_HANDLER, Tracer::LEVEL4, |
"Bad or non-existent Queue ID for desination in legacy message."); | "Bad or non-existent Queue ID for desination in legacy message."); |
delete msg; | delete msg; |
} | } |
|
|
{ | { |
// Should this exception really just be ignored? | // Should this exception really just be ignored? |
// It seems like binary_message_handler should catch it. | // It seems like binary_message_handler should catch it. |
PEG_TRACE_STRING(TRC_DISCARDED_DATA, Tracer::LEVEL2, |
PEG_TRACE_CSTRING(TRC_DISCARDED_DATA, Tracer::LEVEL2, |
"Unrecognized exception caught and ignored by " | "Unrecognized exception caught and ignored by " |
"_handleResponse()."); | "_handleResponse()."); |
} | } |