Nous avons WSO2CEP fonctionnant sur Azure VM, qui est un moteur d'événements complexes et enverra la notification par son éditeur en utilisant une simple requête HTTP POST. Cependant, cela fonctionnera bien sur AWS EC2 mais pas sur Azure VM. Il lancera parfois l'exception ci-dessous.
ID: [-1] [] [2016-10-07 16:05:00,043] ERREUR {org.wso2.carbon.event.output.adapter.core.OutputEventAdapter} - Événement abandonné au adaptateur de sortie '57f629ee23a74a1688b9e7c1_PUBLISHER' pour l'identifiant du locataire '-1234', Délai d'attente de lecture dépassé
java.net.SocketTimeoutException: Délai de lecture dépassé
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:170)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:78)
at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:106)
at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1116)
at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.readLine(MultiThreadedHttpConnectionManager.java:1413)
at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1973)
at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1735)
at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1098)
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)
at org.wso2.carbon.event.output.adapter.http.HTTPEventAdapter$HTTPSender.run(HTTPEventAdapter.java:317)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
J'ai pensé que cela pourrait être dû au problème discuté ici et ici. La solution de contournement consiste à attribuer l'adresse IP publique au niveau de l'instance (ILPIP) à la VM. Cependant, nous utilisons maintenant le modèle Azure Resource Manager et tous les articles liés à ILPIP semblent parler du mode classique (Azure Service Manager).
Actuellement, nous avons une adresse IP publique dynamique attribuée à l'interface réseau de la machine virtuelle.
L'ARM a-t-il toujours ILPIP? et comment pouvons-nous le configurer?