[PATCH] [mamda] map a delete msg through mamda as an error callback
Ian Bell <IBell@...>
commit be5ec93af947d5ed9458bf8a5e05b7300a9322d6 Author: Ian Bell <IBell@...> Date: Thu May 17 21:47:41 2012 +0100
[mamda] map a delete msg through mamda as an error callback Signed-off-by: Ian Bell <IBell@...>
diff --git a/mama/c_cpp/src/c/mama/status.h b/mama/c_cpp/src/c/mama/status.h index 1c48c00..ab51f63 100644 --- a/mama/c_cpp/src/c/mama/status.h +++ b/mama/c_cpp/src/c/mama/status.h @@ -94,6 +94,8 @@ typedef enum MAMA_STATUS_INVALID_QUEUE = 27, /* Not modifiable */ MAMA_STATUS_NOT_MODIFIABLE = 28, + /* Message Type DELETE */ + MAMA_STATUS_DELETE = 29, /* Not permissioned for the subject */ MAMA_STATUS_NOT_PERMISSIONED = 4001, /* Subscription is in an invalid state. */ diff --git a/mama/c_cpp/src/c/status.c b/mama/c_cpp/src/c/status.c index e8c1c31..f5cb3ff 100644 --- a/mama/c_cpp/src/c/status.c +++ b/mama/c_cpp/src/c/status.c @@ -57,6 +57,7 @@ mamaStatus_stringForStatus (mama_status status) case MAMA_STATUS_NOT_INSTALLED : return "NOT_INSTALLED"; case MAMA_STATUS_NO_BRIDGE_IMPL : return "NO_BRIDGE_IMPL"; case MAMA_STATUS_INVALID_QUEUE : return "INVALID_QUEUE"; + case MAMA_STATUS_DELETE : return "STATUS_DELETE"; case MAMA_STATUS_NOT_MODIFIABLE : return "NOT_MODIFIABLE"; case MAMA_STATUS_NOT_PERMISSIONED : return "MAMA_STATUS_NOT_PERMISSIONED"; case MAMA_STATUS_SUBSCRIPTION_INVALID_STATE: return "MAMA_STATUS_SUBSCRIPTION_INVALID_STATE"; diff --git a/mama/jni/src/com/wombat/mama/MamaMsgStatus.java b/mama/jni/src/com/wombat/mama/MamaMsgStatus.java index 52060d9..65da8d9 100644 --- a/mama/jni/src/com/wombat/mama/MamaMsgStatus.java +++ b/mama/jni/src/com/wombat/mama/MamaMsgStatus.java @@ -81,6 +81,10 @@ public class MamaMsgStatus /** Message with duplicate sequence number */ public static final short STATUS_DUPLICATE = 15; + /** Message with the type of DELETE */ + public static final short STATUS_DELETE = 17; + + public static final short STATUS_EXCEPTION = 999; /** diff --git a/mamda/c_cpp/src/cpp/MamdaSubscription.cpp b/mamda/c_cpp/src/cpp/MamdaSubscription.cpp index 9b6599c..d9a9d30 100644 --- a/mamda/c_cpp/src/cpp/MamdaSubscription.cpp +++ b/mamda/c_cpp/src/cpp/MamdaSubscription.cpp @@ -471,6 +471,21 @@ namespace Wombat switch (msgType) { case MAMA_MSG_TYPE_DELETE: + if (subscription->checkDebugLevel (MAMA_LOG_LEVEL_FINE)) + { + const char *contentSymbol = "N/A"; + msg.tryString (MamdaCommonFields::ISSUE_SYMBOL, contentSymbol); + + mama_forceLog (MAMA_LOG_LEVEL_FINE, + "MamdaSubscription (%s.%s(%s)) " + "ignoring msg. type: %s\n", + mSource->getPublisherSourceName(), + mSymbol.c_str (), + contentSymbol, + msg.getMsgTypeName()); + } + onError (subscription, MAMA_STATUS_DELETE , "Msg Type Delete"); + return; case MAMA_MSG_TYPE_EXPIRE: if (subscription->checkDebugLevel (MAMA_LOG_LEVEL_FINE)) { @@ -566,6 +581,11 @@ namespace Wombat code = MAMDA_ERROR_BAD_SYMBOL; errStr = "bad symbol"; break; + case MAMA_STATUS_DELETE: + severity = MAMDA_SEVERITY_OK; + code = MAMDA_ERROR_DELETE; + errStr = "message type delete"; + break; case MAMA_STATUS_TIMEOUT: severity = MAMDA_SEVERITY_HIGH; code = MAMDA_ERROR_TIME_OUT; diff --git a/mamda/c_cpp/src/cpp/mamda/MamdaErrorListener.h b/mamda/c_cpp/src/cpp/mamda/MamdaErrorListener.h index d93877f..5168987 100644 --- a/mamda/c_cpp/src/cpp/mamda/MamdaErrorListener.h +++ b/mamda/c_cpp/src/cpp/mamda/MamdaErrorListener.h @@ -57,7 +57,7 @@ namespace Wombat MAMDA_ERROR_TIME_OUT, MAMDA_ERROR_ENTITLEMENT, MAMDA_ERROR_NOT_FOUND, - MAMDA_ERROR_WATCH_THIS_SPACE + MAMDA_ERROR_DELETE }; /** diff --git a/mamda/java/com/wombat/mamda/MamdaErrorCode.java b/mamda/java/com/wombat/mamda/MamdaErrorCode.java index fa25213..59de128 100644 --- a/mamda/java/com/wombat/mamda/MamdaErrorCode.java +++ b/mamda/java/com/wombat/mamda/MamdaErrorCode.java @@ -72,6 +72,9 @@ public class MamdaErrorCode /** Bandwidth exceeded */ public static final short MAMDA_ERROR_BANDWIDTH_EXCEEDED = 14; + /** Message of type DELETE */ + public static final short MAMDA_ERROR_DELETE = 17; + public static final short MAMDA_ERROR_EXCEPTION = 999;
@@ -100,6 +103,7 @@ public class MamdaErrorCode case MAMDA_ERROR_TOPIC_CHANGE: return "TOPIC_CHANGE"; case MAMDA_ERROR_BANDWIDTH_EXCEEDED: return "BANDWIDTH_EXCEEDED"; case MAMDA_ERROR_EXCEPTION: return "EXCEPTION PROCESSING MESSAGE"; + case MAMDA_ERROR_DELETE: return "MESSAGE TYPE DELETE"; default: return "UNKNOWN"; } } @@ -124,6 +128,7 @@ public class MamdaErrorCode case MamaMsgStatus.STATUS_TOPIC_CHANGE: return MAMDA_ERROR_TOPIC_CHANGE; case MamaMsgStatus.STATUS_BANDWIDTH_EXCEEDED: return MAMDA_ERROR_BANDWIDTH_EXCEEDED; case MamaMsgStatus.STATUS_EXCEPTION: return MAMDA_ERROR_EXCEPTION; + case MamaMsgStatus.STATUS_DELETE: return MAMDA_ERROR_DELETE; } return -1; diff --git a/mamda/java/com/wombat/mamda/MamdaSubscription.java b/mamda/java/com/wombat/mamda/MamdaSubscription.java index 3d82225..46efd13 100644 --- a/mamda/java/com/wombat/mamda/MamdaSubscription.java +++ b/mamda/java/com/wombat/mamda/MamdaSubscription.java @@ -470,10 +470,15 @@ public class MamdaSubscription short msgType = MamaMsgType.typeForMsg (msg); int msgStatus = MamaMsgStatus.statusForMsg (msg); mLatestMsg = msg; + short mywombatStatus = 17; + int myplatformError = 0; + Exception myException = new Exception(); switch (msgType) { case MamaMsgType.TYPE_DELETE: + onError (subscription, mywombatStatus, myplatformError, "Message Type Delete", myException); + return; case MamaMsgType.TYPE_EXPIRE: subscription.destroy(); mLatestMsg = null; Please consider the environment before printing this e-mail. This e-mail may contain confidential and/or privileged information. If you are not the intended recipient or have received this e-mail in error, please advise the sender immediately by reply e-mail and delete this message and any attachments without retaining a copy. Any unauthorised copying, disclosure or distribution of the material in this e-mail is strictly forbidden. |
|
Mike Schonberg <mschonberg@...>
toggle quoted message
Show quoted text
-----Original Message-----We need a little more information here. What is a "delete" message? When/why does it get sent? Why is it an error? This comment will ultimately go into the release notes. Regards, -Mike Please consider the environment before printing this email. Visit our website at http://www.nyse.com **************************************************** Note: The information contained in this message and any attachment to it is privileged, confidential and protected from disclosure. If the reader of this message is not the intended recipient, or an employee or agent responsible for delivering this message to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify the sender immediately by replying to the message, and please delete it from your system. Thank you. NYSE Euronext. |
|
Ian Bell <IBell@...>
toggle quoted message
Show quoted text
-----Original Message-----
From: Mike Schonberg Sent: 21 May 2012 21:48 To: Ian Bell; openmama-dev@... Subject: RE: [Openmama-dev] [PATCH] [mamda] map a delete msg through mamda as an error callback -----Original Message-----We need a little more information here. What is a "delete" message? When/why does it get sent? Why is it an error? This comment will ultimately go into the release notes. Regards, -Mike When using a MamdaSubscription and a msg of type delete is received Mamda handles this internally and did not notify the user that this had happened. As no more messages were received after the delete msg this symbol effectively stopped ticking. This patch fires a callback on the MamdaErrorListener to inform the user of the delete msg so they can take any action they wish based on this information. (eg delete the subscription.) I will try to be more verbose on any less straight forward patches in future. Ian
Please consider the environment before printing this e-mail. This e-mail may contain confidential and/or privileged information. If you are not the intended recipient or have received this e-mail in error, please advise the sender immediately by reply e-mail and delete this message and any attachments without retaining a copy. Any unauthorised copying, disclosure or distribution of the material in this e-mail is strictly forbidden. |
|
Mike Schonberg <mschonberg@...>
Thanks Ian.
toggle quoted message
Show quoted text
-Mike -----Original Message-----Please consider the environment before printing this email. Visit our website at http://www.nyse.com **************************************************** Note: The information contained in this message and any attachment to it is privileged, confidential and protected from disclosure. If the reader of this message is not the intended recipient, or an employee or agent responsible for delivering this message to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify the sender immediately by replying to the message, and please delete it from your system. Thank you. NYSE Euronext. |
|