Return-Path: X-Original-To: apmail-camel-dev-archive@www.apache.org Delivered-To: apmail-camel-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 8A3856C48 for ; Thu, 26 May 2011 07:18:00 +0000 (UTC) Received: (qmail 82790 invoked by uid 500); 26 May 2011 07:18:00 -0000 Delivered-To: apmail-camel-dev-archive@camel.apache.org Received: (qmail 82709 invoked by uid 500); 26 May 2011 07:17:59 -0000 Mailing-List: contact dev-help@camel.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@camel.apache.org Delivered-To: mailing list dev@camel.apache.org Received: (qmail 82675 invoked by uid 99); 26 May 2011 07:17:57 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 26 May 2011 07:17:57 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=FREEMAIL_FROM,HTML_MESSAGE,RCVD_IN_DNSWL_LOW,RFC_ABUSE_POST,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of christian.mueller@gmail.com designates 209.85.216.45 as permitted sender) Received: from [209.85.216.45] (HELO mail-qw0-f45.google.com) (209.85.216.45) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 26 May 2011 07:17:50 +0000 Received: by qwj8 with SMTP id 8so334585qwj.32 for ; Thu, 26 May 2011 00:17:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=wXgm15+5gBkJtgEYYcS+JgNT7uyMnwmE3Y4+xgXOGQo=; b=RGWWvtDk61Fa5f9YR8Lfc2/NvFE6q4ghyEgkFeBbqeyWsw2Fxowd9rk3zxYJE36/9P i1mufkTjrOXTD0zPDyvaKRKdoW/Tp7ZsJg89boTpOBxl6iLH0fRJZXIbHAT1m7039oT7 pvqvCoZbBUBtiSLEV1grz3N5gjtmAfbrzjOq4= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=Fu6kT7OOMsXPN0JM9yIY+I8sI8n4keZzWxYZhLsavtDerwpgJg8+4J8dVrmyJjl1MB +MwfgOfveEQ8H5D0htVXkiGaPmQtZoEeV8Uj+sXWMvh7pQDp+IKAOezFUCZo+4MH+vj2 u4sMo5y2ZDPoOoF+q0mCDPNEOISw1e4qkVkXg= MIME-Version: 1.0 Received: by 10.229.218.210 with SMTP id hr18mr347739qcb.10.1306394249670; Thu, 26 May 2011 00:17:29 -0700 (PDT) Received: by 10.229.45.12 with HTTP; Thu, 26 May 2011 00:17:29 -0700 (PDT) In-Reply-To: References: Date: Thu, 26 May 2011 09:17:29 +0200 Message-ID: Subject: Re: SmppConsumer: Deliver SM Error Handling From: =?ISO-8859-1?Q?Christian_M=FCller?= To: dev@camel.apache.org Content-Type: multipart/alternative; boundary=00163630f5853032eb04a4289d30 X-Virus-Checked: Checked by ClamAV on apache.org --00163630f5853032eb04a4289d30 Content-Type: text/plain; charset=ISO-8859-1 Hello Tolga! I will have a look in it. If you can share your route with us, it would be very helpful. And we love contributions (which also include unit tests)... :-) Best, Christian On Wed, May 25, 2011 at 3:09 AM, Tolga Tarhan wrote: > All, > > The SMPP protocol allows a ESME to reject a message temporarily if > it's having trouble processing it (by responding with ESME_RX_T_APPN - > ESME Receiver temporary error). This seems to be the most logical > thing to do when an exception occurs during > onAcceptDeliverSm(DeliverSm) so that the SMSC will try to deliver the > message again later. > > However, the behavior currently in SmppConsumer is to use the default > exception handler, which is LoggingExceptionHandler, and still return > from onAcceptDeliverSm as normal (thus, JSMPP returns a success to the > SMSC). Further, the SmppConsumer ignores any faults (it's an InOnly > endpoint). As a result, the SMSC believes the message was delivered > when there's an exception or fault. > > The fix is trivial, and I'm happy to submit a patch. Being that I'm > new to Camel, however, I wanted to ask if this was a reasonable thing > to do. Specifically, I propose changing SmppConsumer so that in the > event of an exception during getProcessor().process(exchange) inside > onAcceptDeliverSm(DeliverSm), we would throw a ProcessRequestException > back to JSMPP, which causes it respond with a failure to the SMSC, > rather than a success as it currently does. > > If that change make sense, then I'd also like to ask if changing the > MEP to InOut makes sense, so that we can capture faults from the > processor. Obviously, an actual out message never make sense, but we > could use a fault message to specify an error code to use in the > ProcessRequestException. Do other components which can report faults, > but not have any real out messages, work as InOut components or as > InOnly components? > > Thanks for your advice, > Tolga > --00163630f5853032eb04a4289d30--