Sunday, October 10, 2010

Local jDev deployments to running WebLogic AMI instances.

I have been running some Oracle Fusion Middleware workshops lately, using a mixture of Amazon (AMI) instances and a local install of Oracle jDeveloper, and experienced many problems attempting to deploy a local SOA composite to the remote AMI instance.

I try to deploy to a machine with an external IP like... ec2-184-73-150-246.compute-1.amazonaws.com, but the internal IP which is different eg: 10.112.31.184 rejects the SCA deployment.

jDeveloper can connect to the server ok, and commence the deployment, but I guess the internal IP is tricking soa-infra into rejecting the deploy activity.

The jDeveloper log looks like this...

[12:23:42 PM] Deploying sca_POProcessing_rev3.2.jar to partition "default" on server AdminServer
[10.112.31.184:7001] [12:23:42 PM] Processing sar=/C:/Temp/Downloads/POProcessing/POProcessing/deploy/sca_POProcessing_rev3.2.jar
[12:23:42 PM] Adding sar file - C:\Temp\Downloads\POProcessing\POProcessing\deploy\sca_POProcessing_rev3.2.jar
[12:23:42 PM] Preparing to send HTTP request for deployment
[12:23:42 PM] Creating HTTP connection to host:10.112.31.184, port:7001 [12:23:42 PM] Sending internal deployment descriptor
[12:23:42 PM] Sending archive - sca_POProcessing_rev3.2.jar
[12:24:03 PM] Error sending deployment request to server AdminServer
[10.112.31.184:7001] java.net.ConnectException: Connection timed out: connect
[12:24:03 PM] Error sending deployment request to server AdminServer
[10.112.31.184:7001] java.net.ConnectException: Connection timed
out: connect
[12:24:03 PM] #### Deployment incomplete. ####

Well to fix this you could try and muck about with the hostname, perhaps set the internal IP address to an Elastic IP, but I am pleased to say I eventually found an easier way.

I added the external listen address to the admin server. Easy hey?

Here’s how...
  1. Fire up WebLogic Console in your browser
  2. Create an edit session if necessary
  3. Go to “your domain name” > Environment > Servers and select your SOA deployment server (mine is just AdminServer in the screenshot)
  4. On the Configuration, General tab select the “Advanced” section at the bottom of your page
  5. Enter your AMI IP eg: ec2-184-73-150-246.compute-1.amazonaws.com to the “External Listen Address” field
  6. Save your work and yes, I am afraid so, restart your server(s)




















That did the trick and now deployments from my local jDeveloper work fine.

[01:07:14 PM] Preparing to send HTTP request for deployment
[01:07:14 PM] Creating HTTP connection to host:ec2-184-73-150-246.compute-1.amazonaws.com, port:7001
[01:07:14 PM] Sending internal deployment descriptor
[01:07:14 PM] Sending archive - sca_POProcessing_rev3.2.jar
[01:07:36 PM] Received HTTP response from the server, response code=200
[01:07:36 PM] Successfully deployed archive sca_POProcessing_rev3.2.jar to partition "default" on server AdminServer [ec2-184-73-150-246.compute-1.amazonaws.com:7001]
[01:07:36 PM] Elapsed time for deployment: 35 seconds [01:07:36 PM] ---- Deployment finished. ----

Hope this small tip helps you continue to enjoy the benefits of developing locally in jDeveloper and using WebLogic with SOA , BPM and OSB in the cloud.

1 comment:

theyearoftheshnitzel said...

Thanks for sharing your tip Andrew. Have you ever tried to tie the elastic IP address to this field or the instance see it as the standard AMI IP address?