Mike Schonberg <mschonberg@...>
toggle quoted messageShow quoted text
-----Original Message----- From: openmama-dev-bounces@lists.openmama.org [mailto:openmama-dev- bounces@lists.openmama.org] On Behalf Of Ian Bell Sent: Friday, May 18, 2012 8:58 AM To: openmama-dev@lists.openmama.org Subject: [Openmama-dev] [PATCH] [mamda] map a delete msg through mamda as an error callback
commit be5ec93af947d5ed9458bf8a5e05b7300a9322d6
Author: Ian Bell <IBell@nyx.com>
Date: Thu May 17 21:47:41 2012 +0100
[mamda] map a delete msg through mamda as an error callback 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 Signed-off-by: Ian Bell <IBell@nyx.com>
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.
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.
|