cancel
Showing results for 
Search instead for 
Did you mean: 

unable to create socket

former_member229310
Active Participant
0 Kudos

Hello,

I have idoc to soap scenario.  

When the message is trying to send,  the soap receiver is throwing below error, kindly advice

creating a socket to host abc.com at port 4443

Error in call over HTTP: HTTP 0 null

SOAP: call failed: java.io.IOException: unable to create a socket

[EXCEPTION]

Failed to call the endpoint: Error in call over HTTP: HTTP 0 null; nested exception caused by:

java.io.IOException: unable to create a socket

at com.sap.aii.af.sdk.xi.net.HTTPClientConnection.call(HTTPClientConnection.java:373)

at com.sap.aii.af.sdk.xi.net.HTTPClientConnection.post(HTTPClientConnection.java:314)

at com.sap.aii.af.sdk.xi.srt.CallerServiceImpl2.call(CallerServiceImpl2.java:207)

at com.sap.aii.af.sdk.xi.srt.TransportBubble.onMessage(TransportBubble.java:37)

at com.sap.aii.af.sdk.xi.srt.ExtensionBubble.onMessage(ExtensionBubble.java:56)

at com.sap.aii.adapter.soap.ejb.XISOAPAdapterBean.callBubbleSequenceReceiver(XISOAPAdapterBean.java:816)

at com.sap.aii.adapter.soap.ejb.XISOAPAdapterBean.process(XISOAPAdapterBean.java:663)

at sun.reflect.GeneratedMethodAccessor1634.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at com.sap.engine.services.ejb3.runtime.impl.RequestInvocationContext.proceedFinal(RequestInvocationContext.java:47)

at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:166)

at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatesTransition.invoke(Interceptors_StatesTransition.java:19)

at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)

at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Resource.invoke(Interceptors_Resource.java:47)

at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)

at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.doWorkWithAttribute(Interceptors_Transaction.java:37)

at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.invoke(Interceptors_Transaction.java:21)

at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)

at com.sap.engine.services.ejb3.runtime.impl.Interceptors_MethodRetry.invoke(Interceptors_MethodRetry.java:46)

at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)

at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:189)

at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatelessInstanceGetter.invoke(Interceptors_StatelessInstanceGetter.java:16)

at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)

at com.sap.engine.services.ejb3.runtime.impl.Interceptors_SecurityCheck.invoke(Interceptors_SecurityCheck.java:25)

at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)

at com.sap.engine.services.ejb3.runtime.impl.Interceptors_ExceptionTracer.invoke(Interceptors_ExceptionTracer.java:17)

at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)

at com.sap.engine.services.ejb3.runtime.impl.DefaultInvocationChainsManager.startChain(DefaultInvocationChainsManager.java:138)

at com.sap.engine.services.ejb3.runtime.impl.DefaultEJBProxyInvocationHandler.invoke(DefaultEJBProxyInvocationHandler.java:164)

at $Proxy778.process(Unknown Source)

Thanks in advance

Regards,

Harsha

Accepted Solutions (1)

Accepted Solutions (1)

anupam_ghosh2
Active Contributor
0 Kudos

Hi Harsha,

                   Did you try pinging the web server from your system?

pls request your BASIS team to try TELNET/PING the webserver at operating system level to check if the client firewall is allowing SOAP request to flow to web service.

Network team needs to look in the issue as well. If there is a proxy server between client network and webservice then proxy server  has  to allow SOAP request to flow to web service.

Regards

Anupam

former_member229310
Active Participant
0 Kudos

Thanks Anupam,  I tried pinging the telnet with host and port its going successful.  We do have proxy settings and i have configured same in communication channel. So will there be settings at network to restrict the messages going out of firewall even though telnet is successful.

anupam_ghosh2
Active Contributor
0 Kudos

Hi Harsha,

                Please confirm with network team if there is a firewall stopping the request.

The network team has to include IP of the web server in the firewall, to allow passage of request.

Did you try posting request through SOAP UI from your system? Please try and check.

Regards

Anupam  

Former Member
0 Kudos

Dear Anupam,

I am also having this kind of issue: in proxy to web service scenario


Failed to call the endpoint: Error in call over HTTP: HTTP 0 null

SOAP: Call failed: java.io.IOException: Communication over HTTP. Unable to create a socket.


I can ping/telnet from my local computer. We can test with SOAP UI as well. But from PI only, we got the error. I have tried with anonymous login & user authentication config also. But it's failed.


Thanks!



justin_santhanam
Active Contributor
0 Kudos

Hello May,

Did u take a look at the below note?

1966721 - socket write error when sending large amount of data

Former Member
0 Kudos

Hi Justin,

I am not sending large payload and just passing 6 fields.

Answers (3)

Answers (3)

Harish
Active Contributor
0 Kudos

Hi Harsha,

The issue will because of the IP is not reachable. Please check the firewalls at your end.

Most of the time firewall are configured with NAT adress and from PI NAT address needs to use in Communication channel.

Regards,

Harish

iaki_vila
Active Contributor
0 Kudos

Hi Harsha,

This error means the socket stack on the server machine received your connection request and intentionally refused to accept it. That happens for one of two possible reasons: 

1) There is no listening socket running on the port you are trying to connect to. (weird)

2) there is a listening socket, but its backlog of pending connections is full, so there is no room to queue your request at that moment.

You should contact with your partner and to know the maximum concurrency and the messages weight. This kind of error is difficult to resolve only in the PI side.

Regards.

former_member229310
Active Participant
0 Kudos

Thanks Vila for the reply,  couple of things i tried ,   when i tried to send to the external party outside the firewall then the socket error is coming. But when i tried to post the soap message to 50000 port of different server within inter landscape then the socket is getting created without any issue.    Socket is not getting created when the message is going out of firewall. But telnet / ping to the specific host and port are going correctly.   Could you let me know if i can test this somehow with soap ui , will it be helpful ?

nageshwar_reddy
Contributor
0 Kudos

Hi Harsha,

As the error indicates, web service server is not reachable from PI. This can happen due to network issues or SSL issues.

creating a socket to host abc.com at port 4443

Error in call over HTTP: HTTP 0 null

SOAP: call failed: java.io.IOException: unable to create a socket

You should check the following.

1. Ensure that the web service server is reachable from PI. Log into PI server and try to open the WSDL in a IE browser.

2. Are you trying to use SSL? You need to ensure that proper cert are installed.

former_member229310
Active Participant
0 Kudos

Thanks for the reply ,  1) yes i tried to open the target url from web browser and it is going through without any issue. Also tried to pinging telnet to the host and port, going fine without any issue.  2) No ssl is being used as of now , trying to test without ssl first . Should i install ssl certificates and test ? hope there shd not be issue if i try to post directly.

nageshwar_reddy
Contributor
0 Kudos

Is the port 4443 an SSL port? Does the Target URL start with https? If you are using the https port, then you will have to install certs and test.

former_member229310
Active Participant
0 Kudos

The target URL starts with HTTP,  I think 4443 is a SSL port , so you mean i cannot post a soap request on ssl port without installing certificates ?

nageshwar_reddy
Contributor
0 Kudos

That's correct. Without certs none of your calls will go through. Incidentally, I am also waiting on certs to be installed to test one of the secure web service.

You can also check if the web service provides an unsecured URL? I am trying that option now.:)

former_member229310
Active Participant
0 Kudos

Thanks Nageshwar ,  One more stupid doubt may be , the message is not going out of our firewall and failed to create socket so how does it linked to certificate validation of third party. I do not see any kind of certificate failure kinda log in XPI inspector as well.   How to check  "web service provides an unsecured URL" .  Infact i am posting the message over external XI system and they requested it to be in SOAP message. SOAP CC (XI 3.0 protocol)

nageshwar_reddy
Contributor
0 Kudos

This is what i saw in the xpi_inspector. I think, I used example 30(XI Adapter) and chose SOAP adapter.

Error creating client SSL socket

[EXCEPTION]

java.net.ConnectException: Connection timed out: connect

Check the location url in the WSDL. There should be multiple bindings indicating support of multiple authentications. By unsecured i meant http without ssl.