Simples Assim

Posts Tagged ‘Progress Sonic

Using Apache Commons Logging or Log4J with Custom Services

leave a comment »

Written by Fernando Ribeiro

July 4, 2010 at 12:31 am

Posted in Software

Tagged with

Agents with the Progress OpenEdge Adapter for Sonic 10.1A

leave a comment »

Although it is not mentioned in the documentation, you need to add listeners to your service instances to use multiple agents at the same time.

Thanks to Régis for the original post.

Written by Fernando Ribeiro

April 3, 2010 at 11:49 pm

Posted in Software

Tagged with ,

How to Upgrade Sonic Workbench 7.6.2 to Eclipse 3.4

leave a comment »

Written by Fernando Ribeiro

November 16, 2009 at 2:12 am

Posted in Software

Tagged with

Oracle, MySQL and the EU: The Q&A

leave a comment »

The article is great, although my favorite point is only discussed near the end:

In the abstract, it’s easy to see how Oracle could use MySQL as a complement to its flagship product; MySQL for low end, low margin accounts where Oracle doesn’t currently compete or, tactically, to undermine SQL Server and/or DB2 in particular accounts.

As a few folks have pointed out, the Oracle sales force is going to dislike MySQL even more than the Sun sales force did, as it is a low margin product competing – at least in some sense – with a high margin staple.

I also agree that Oracle and MySQL aren’t really competitors, unlike Sonic (proprietary and outdated) and FUSE (open source and leading-edge), which is another interesting story to follow.

http://redmonk.com/sogrady/2009/10/23/oracle-mysql-and-the-eu-the-qa/

Thanks to Simon for the tip.

Written by Fernando Ribeiro

October 25, 2009 at 12:01 am

Prestadores de Serviço com Progress Sonic ESB

leave a comment »

Written by Fernando Ribeiro

October 24, 2009 at 8:42 pm

Posted in Software

Tagged with

Progress Sonic Customers List

leave a comment »

If you have to mix references, you probably don’t think that you have enough.

http://www.sonicsoftware.com/customers/index.ssp

Many well-known customers are missing, go figure why.

Written by Fernando Ribeiro

September 23, 2009 at 10:33 pm

Posted in Business, Software, Technology

Tagged with

Issue in Progress Sonic Workbench 7.6.2

leave a comment »

When using the Asynchronous Event Dispatch API with a few thousand messages, I got a bunch of javax.naming.NameNotFoundException exceptions about temporary queues in MgmtBroker that Progress Sonic Workbench seems to fail to create.

No exceptions were thrown when the process ran from the JMS Test Client.

I will open a ticket ASAP.

Written by Fernando Ribeiro

September 21, 2009 at 12:44 am

Posted in Software

Tagged with

Asynchronous Dispatching in Progress Sonic ESB 7.5+

leave a comment »

All messages placed in the Outbox by a service are sent at one time. A service can create multiple messages and address them to multiple endpoints. None of these messages are sent until the entire service (XQServiceContext ctx) method has completed.

(from the page 89 of the Developer’s Guide)

[The Asynchronous Event Dispatch API] allows message dispatching at any time after service initialization and provides direct access to the framework dispatch mechanism instead of requiring messages to be placed in the service Outbox.

(from the page 321 of the Developer’s Guide)

public void service(final XQServiceContext ctx) {
  final XQMessage msg = ...

  final XQDispatch dispatcher = ctx.getDispatcher();

  dispatcher.dispatch(msg);
}

There is a SentWithDispatch metric in 7.6 that is also of interest.

Written by Fernando Ribeiro

September 19, 2009 at 4:52 pm

Posted in Software

Tagged with

Headers vs. Properties in ESBs

leave a comment »

Headers are commonly used for service-level information (e.g. HTTP or JMS headers copied from incoming messages) and properties, for message-level information (e.g. data saved from previous messages in the itinerary) that could be instead added to messages.

While Progress Sonic ESB stores them together in XQ messages, both Progress FUSE ESB and JBossESB store headers and properties apart.

Written by Fernando Ribeiro

July 19, 2009 at 12:40 pm

SOAP Fault Handling in Java, .NET and Progress OpenEdge

leave a comment »

Java

import javax.xml.soap.SOAPElement;
import javax.xml.ws.soap.SOAPFaultException;

public final class SOAPSample {

  public static void main(final String[] args) {

    try {
      ...
    } catch (final SOAPFaultException e) {
      final SOAPElement detail = (SOAPElement) e.getFault().getDetail().getElementsByTagNameNS("urn:soap-fault:details", "FaultDetail").item(0); // replace by the actual detail, if any, this is for the Progress OpenEdge Adapter for Sonic ESB

      final SOAPElement msg = (SOAPElement) detail.getElementsByTagName("errorMessage").item(0);

      throw new Exception(msg.getValue(), e));
    }

  }

}

.NET

using System.Web.Services.Protocols.SoapException;

public sealed class SOAPSample {

  public static void main(const String[] args) {

    try {
      ...
    } catch (const SoapException Ex) {
      throw new Exception(Ex.Detail["FaultDetail", "urn:soap-fault:details"]["errorMessage"].InnerText); // replace by the actual detail, if any, this is for the Progress OpenEdge Adapter for Sonic ESB
    }

  }

}

Progress OpenEdge w/o Detail

...

IF VALID-HANDLE(ERROR-STATUS:ERROR-OBJECT-DETAIL) THEN
DO:
  RETURN ERROR ERROR-STATUS:ERROR-OBJECT-DETAIL:SOAP-FAULT-STRING.
END.

Progress OpenEdge w/ Detail

DEF VAR hFault AS HANDLE.
DEF VAR hDetail AS HANDLE.
DEF VAR hMsg AS HANDLE.

CREATE X-NODEREF hFault.
CREATE X-NODEREF hDetail.
CREATE X-NODEREF hMsg.

...

ERROR-STATUS:ERROR-OBJECT-DETAIL:SOAP-FAULT-DETAIL:GET-NODE(hFault).

IF VALID-HANDLE(hFault) THEN
DO:
  hFault:GET-CHILD(hDetail, 1).

  hDetail:GET-CHILD(hMsg, 1).

  RETURN ERROR hMsg:NODE-VALUE.
END.

Thanks to Luiz and Paulo for the help.

Written by Fernando Ribeiro

June 9, 2009 at 3:35 pm

Posted in Software

Tagged with ,