We recently installed BizTalk Server 2010 CU 6 in a development environment for testing.
After the installation, the error below was generated when an HL7 message was submitted through an MLLP adapter to a request response receive location with the BTAHL7ReceivePipeline receive pipeline and BTAHL7SendPipeline send pipeline.
These pipelines are supplied in the BTAHL7 and have not been customized. We applied the update in an environment with our current state BizTalk Server 2010 CU5 and BizTalk Adapter Pack 2010 CU2 and in one with BizTalk Server 2010 CU5, BizTalk Adapter Pack 2010 CU3 and BTAHL7 Accelerator hot fixes 2564013, 2607536,2702143,2713884,2732905,2758524.
In both cases, the same error was encountered, the windows updates are up to date as of October 25th 2014. Has anyone else experienced this issue?
A pipeline component in the receive pipeline:"<pipeline info - version, culture and
public key token>" is using the message context properties "BTS.MessageDestination" or
"BTS.SuspendMessageOnRoutingFailure" in a unsupported fashion. The pipeline processing is
being terminated."
----Edit----
This ended up being a bug in Microsoft's Biztalk CU 6. We were able to replicate it with all the basic information and a new CU was created to address this issue.
Related
A send port configured with WCF-SAP adapter is failing with Unknown error description error logged to Biztalk event log.
In the event of this error we can see that the iDOC is already sent to the SAP system before the error occurred, but due to this error Biztalk thinks that the iDOC has not been sent to SAP and hence retries to send the iDOC after retry interval of 5 minutes which is creating a duplicate of the iDOC in the SAP system as well as in biztalk by archiving 2 files. Not sure of the cause of the error as it is a very generic error.
Can someone please suggest if you had similar situation or cause for this error anyway related to wcf-sap adapter in BT 2013 R2 ? Thank you.
Here is the error:
A message sent to adapter "WCF-SAP" on send port "xx" with URI
"sap://CLIENT=xx;LANG=EN;#a/xx/xx?GWHOST=xx&GWSERV=xx&ListenerGwServ=xx&ListenerGwHost=xx&RfcSdkTrace=False&AbapDebug=False"
is suspended. Error details: Unknown Error Description MessageId:
{DC121ABC-ECD3-4635-B30D-5080322C976B} InstanceID:
{B2802A71-ECBE-4237-A48D-E5DCE284D23F}
Verify at the adapter settings that EnableBizTalkCompatibilityMode is set to True. And the checkbox Use Transactions is enabled and Isolation Level selected is Serializable.
Also are you using the NCo ConnectorType to connect to SAP? This is the recommended way.
I have a task to implement a message broker at choice in a distributed system. Is Firebase Cloud Messaging considered one?
No. At the very least not identical in a sense, however both are related to interchanging of messages.
Firebase Cloud Messaging (FCM) is a messaging service commonly (if not always) used for Push Notifications:
A push notification is a message that is "pushed" from backend server or application to user interface, e.g. (But not limited to) mobile applications and desktop applications. It is more user experience specific which is different from Push technology, which pushes the requests between components such as server to server communication. A common scenario of push notification is the client application pops up a message in front of application's user information, along with the alert sounds. The notification could also coupled with images and hyper text link in some cases. Via interacting with the push notification it usually brings up the client applications to the front.
The service could be described as a middleware that handles the sending/delivery of the message between the App Server (usually the sender) and the client (the receiver). But for them to communicate accordingly, both the Sender and Receiver must be configured to receive the message itself (i.e. they are the ones that have to adjust to the message).
While a Message Broker is described as:
In computer programming, a message broker is an intermediary program module that translates a message from the formal messaging protocol of the sender to the formal messaging protocol of the receiver. Message brokers are elements in telecommunication or computer networks where software applications communicate by exchanging formally-defined messages. Message brokers are a building block of Message oriented middleware.
From the description itself, the message broker could also be considered as a middleware, but it's task is more on transforming/translating/adjusting the message so that it is would be smoothly received by the receiver.
There is also an available list of Message Broker softwares from the Wikipedia page, containing:
Apache ActiveMQ
Apache Kafka
Apache Qpid
Celery
Cloverleaf (E-Novation Lifeline)
Comverse Message Broker (Comverse Technology)
Enduro/X Transactional Message Queue (TMQ)
Financial Fusion Message Broker (Sybase - acquired by SAP in 2010)
JBoss A-MQ (aka. Fuse Message Broker - enterprise ActiveMQ - acquired by RedHat in 2012)
Gearman
HornetQ (Red Hat) (donated to Apache ActiveMQ community)
IBM Integration Bus
IBM Message Queues
JBoss Messaging (JBoss - moved to HornetQ and now it's in bug-fix mode)
JORAM
Azure Service Bus (Microsoft)
BizTalk Server (Microsoft)
NATS (MIT Open Source License, written in Go)
Open Message Queue
Oracle Message Broker (Oracle Corporation)
QDB (Apache License 2.0, supports message replay by timestamp)
RabbitMQ (Mozilla Public License, written in Erlang)
Redis An open source, in-memory data structure store, used as a database, cache and message broker.
SAP PI (SAP AG)
Solace Systems Message Router
Spread Toolkit
Tarantool, a NoSQL database, with a set of stored procedures for message queues
WSO2 Message Broker
I have a Worklight 6.1 app on iOS with push notifications. It works fine, until something goes wrong on the Worklight server. All push notifications after that fail until the server is restarted.
The Worklight server is Liberty 8.5.5.0 on Linux x86_64
Using JDK : java-1.7.0-ibm-1.7.0.5.0.x86_64
The Worklight database is Derby (this is a test server)
Everything works great when I start the server.
10 minutes after the server starts, I see:
[2/20/14 19:39:15:319 CST] 0000003e com.notnoop.apns.internal.ApnsFeedbackConnection W Failed to retreive invalid devices
java.lang.RuntimeException: javax.net.ssl.SSLHandshakeException: com.ibm.jsse2.util.j: End user tried to act as a CA
But that doesn't seem to break anything. Push notifications still work. 30 minutes after server start, I see:
[2/20/14 19:59:48:657 CST] 00000061 com.ibm.ws.webcontainer.util.ApplicationErrorUtils E SRVE0777E: Exception thrown by application class 'org.jboss.resteasy.core.SynchronousDispatcher.handleApplicationException:365'
org.jboss.resteasy.spi.UnhandledException: org.springframework.dao.InvalidDataAccessApiUsageException: Multiple DISTINCT aggregates are not supported at this time. {SELECT COUNT(DISTINCT t0.DEVICE), COUNT(DISTINCT t1.ID) FROM NOTIFICATION_DEVICE t0 INNER JOIN NOTIFICATION_USER t1 ON t0.USERSUBSCRIPTIONID = t1.ID WHERE (t0.APPLICATIONID IN (?) AND t0.PLATFORM = ?)} [code=30000, state=42Z02]; nested exception is <openjpa-1.2.2-r422266:898935 nonfatal user error> org.apache.openjpa.persistence.ArgumentException: Multiple DISTINCT aggregates are not supported at this time. {SELECT COUNT(DISTINCT t0.DEVICE), COUNT(DISTINCT t1.ID) FROM NOTIFICATION_DEVICE t0 INNER JOIN NOTIFICATION_USER t1 ON t0.USERSUBSCRIPTIONID = t1.ID WHERE (t0.APPLICATIONID IN (?) AND t0.PLATFORM = ?)} [code=30000, state=42Z02]
And any call to the push adapter after that results in:
[2/21/14 19:06:44:038 CST] 00000090 com.notnoop.apns.internal.ApnsConnectionImpl I Exception while waiting for error code
java.net.SocketException: Socket is closed
at com.ibm.jsse2.qc.j(qc.java:301)
at com.ibm.jsse2.e.read(e.java:32)
at java.io.InputStream.read(InputStream.java:102)
at com.notnoop.apns.internal.ApnsConnectionImpl$1MonitoringThread.run(ApnsConnectionImpl.java:114)
[2/21/14 19:06:44:650 CST] 00000085 com.notnoop.apns.internal.ApnsConnectionImpl I Failed to send message Message(Id=2; Token=499D9813FBC377CCDE787E2749CDA914F826EDF39B0830D4AFEEF7A5D71A1802; Payload={"aps":{"alert":{"body":"You have 4 available messages","action-loc-key":null},"sound":"","badge":4},"payload":"{\"alias\":\"myNotificationPush\"}"})... trying again after delay
javax.net.ssl.SSLHandshakeException: com.ibm.jsse2.util.j: End user tried to act as a CA
And all the retries after that result in the same failure.
There are some google hits on "End user tried to act as a CA" and "APNS" that suggest this is a JDK 1.5 problem (fixed in 1.6), and that it can be fixed by using the IbmPKIX trust manager, but I am certain that I am using JDK 1.7, and the trust manager in java.security is PKIX
After upgrading to the Worklight 6.0.0.2 fix pack, we've seen the same issue on Websphere running JDK 7. After some research I found this issue reported for IBM JDK 7. There is an issue with the Entrust certificate that is included in the JDK. I tried the workaround with replacing the cacerts file from the JDK 6 and this worked.
Replace jre\lib\security\cacerts file in JDK 7 with
jre\lib\security\cacerts file in JDK 6
http://www-01.ibm.com/support/docview.wss?uid=swg1IV43936
Note: To establish a TLS session with APNs, an Entrust Secure CA root certificate must be installed on the provider’s server. If the server is running OS X, this root certificate is already in the keychain. On other systems, the certificate might not be available. You can download this certificate from the Entrust SSL Certificates website.
https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/CommunicatingWIthAPS.html
Once again … this took long enough to figure out.
The underlying problem was that the Worklight server was hosted on SoftLayer, and evidently the SoftLayer firewall by default monitors socket connections, and if a connection is idle for ~10 minutes, drops it.
So, the worklight server connected to APN and push worked. Then 10 minutes passed without any push notifications, and the firewall dropped the socket between the Worklight server and the APNS server. All subsequent push requests failed silently because Worklight had a dead socket for the APNS service.
We reconfigured the firewall to allow the connection to APNS to sit idle indefinitely and the problem was resolved.
I am having problems testing the MQSC Adapter in BizTalk to communicate with a Queue on Z/OS Host.
The test senario: While sending messages though Biztalk I (Force)stop and start the Host channel, to mimic a HOST IPL.
In this scenario I experienced the following outcomes:
Sometimes there are messages left uncomitted on the Host MQ.
Even after the channel are started again. This way I don't know if the messages have been processed by Biztalk.
Question Is there a way to make sure that messages are always committed on the Host MQ or still available on the MQ if not committed
Once I experienced duplicate messages and once that messages was lost
Since these things happened only once each. I hope to find problems in my test applications / procedure.
Not really a question, but if others have experienced the same errors I would like to know.
The test Setup
Biztalk 2009 on 2 nodes
WebSphere MQ client 7.5.0.2 (Transactions supported)
MSDTC - XA Transactions are enabled (Edited to reflect comments)
MS Biztalk Adapters for Host Systems 2.0
Port Configuration
Receive Location
Send Port
If you are using MQ transactions, that is just MQPMO_SYNCPOINT and MQCMIT, then the disconnection (either explicitly or implicitly due to STOP CHANNEL(chl-name) MODE(FORCE)) will cause any outstanding transaction to be completed (committed on an explicit disconnection, rolled-back on an implicit one).
If you are using 2-PC transactions with a Transaction Manager (TM), then the transaction will need to be dealt with by the TM, depending on how far through it is, is it prepared already for example.
i have an activemq network of broker using activemq 5.4.0. I have a central server with a broker and a consumer and many client with local broker and producer.
I need to upgrade activemq to version 5.8.0.
Upgrading the server, in local broker i continue to see central consumer, but messages remain in local broker.
For a netowork of broker, it's mandatory to have same version of activemq?
Thanks
I solved in this way:
1) change configuration in network connector broker client 5.4.0 from
<networkConnectors>
<networkConnector uri="static://(tcp://SERVERURL:61616)"
name="bridge"
duplex="true"
conduitSubscriptions="true"
decreaseNetworkConsumerPriority="false">
</networkConnector>
</networkConnectors>
to
<networkConnectors>
<networkConnector uri="static://(tcp://SERVERURL:61616)"
name="bridge"
duplex="true"
conduitSubscriptions="true"
decreaseNetworkConsumerPriority="false">
<dynamicallyIncludedDestinations>
<queue physicalName=">" />
</dynamicallyIncludedDestinations>
</networkConnector>
</networkConnectors>
2) upgrade server broker from 5.4.0 to 5.8.0
3) All works, also synchronous messages
4) Upgrade each broker client to 5.8.0 and test every message
Yes, mixing broker versions in a network of brokers is not a good idea. The testing done is always done using the same versions of the Broker.