wsadmin adminApp.update java.net.UnknownHostException Full-Qualified-Hostname - soap

Try to deploy an EAR file to WebSphere enterprise app, over a SOAP connection.
the command line:
call wsadmin -conntype SOAP -host %WAS_HOST% -port %WAS_PORT% -user %WAS_USER% -password !WAS_PASSWORD! -lang jython -c "AdminApp.update('%APP_NAME%', 'app', '[ -operation update -contents %EAR_FILE% -usedefaultbindings -defaultbinding.virtual.host default_host -nopreCompileJSPs -installed.ear.destination $(APP_INSTALL_ROOT)/%WAS_HOST%Network -distributeApp -nouseMetaDataFromBinary -nodeployejb -createMBeansForResources -noreloadEnabled -deployws -validateinstall warn -noprocessEmbeddedConfig -filepermission .*\.dll=755#.*\.so=755#.*\.a=755#.*\.sl=755 -noallowDispatchRemoteInclude -noallowServiceRemoteInclude -asyncRequestDispatchType DISABLED -nouseAutoLink -MapModulesToServers [[ %MODULE_NAME% %WAR_FILE%,WEB-INF/web.xml WebSphere:cell=%WAS_HOST%Network,cluster=%CLUSTER%+WebSphere:cell=%WAS_HOST%Network,node=%WEB_NODE%,server=%WEB_NODE% ]]]' )"
is issued from a build machine that is on windows. where WAS_HOST=MySrvrA.mycomp.com
when running this command, I got
WASX7209I: Connected to process "dmgr" on node eagnmncom0cbbManager using SOAP connector; The type of process is: DeploymentManager
WASX7015E: Exception running command: "AdminApp.update ...
....
exception information:
com.ibm.websphere.management.filetransfer.client.TransferFailedException
java.net.UnknownHostException: java.net.UnknownHostException: MySrvrA
the WebSphere App server is on Linux, and the /etc/hosts file has the contents:
IP-Address Full-Qualified-Hostname Short-Hostname
#
127.0.0.1 localhost
special IPv6 addresses ::1 localhost ipv6-localhost ipv6-loopback
fe00::0 ipv6-localnet
ff00::0 ipv6-mcastprefix ff02::1 ipv6-allnodes ff02::2 ipv6-allrouters
ff02::3 ipv6-allhosts
56.xxx.xxx.xxx MySrvrA.mycomp.com MySrvrA
this server can be accessible over the internet via the Full-Qualified-Hostname only.
To trouble shoot, I have
1) run a command of
call wsadmin -conntype SOAP -host %WAS_HOST% -port %WAS_PORT% -user %WAS_USER% -password !WAS_PASSWORD! -lang jython -c "print Help.help()"
this works, and it should prove that the connection from the build machine to the WAS server is good.
2) to further prove that the AdminApp.update and its resolved parameters works, I have run the AppAdmin.update in its entirety:
AdminApp.update('%APP_NAME%', 'app', '[ -operation update -contents %EAR_FILE% -usedefaultbindings -defaultbinding.virtual.host default_host -nopreCompileJSPs -installed.ear.destination $(APP_INSTALL_ROOT)/%WAS_HOST%Network -distributeApp -nouseMetaDataFromBinary -nodeployejb -createMBeansForResources -noreloadEnabled -deployws -validateinstall warn -noprocessEmbeddedConfig -filepermission .*\.dll=755#.*\.so=755#.*\.a=755#.*\.sl=755 -noallowDispatchRemoteInclude -noallowServiceRemoteInclude -asyncRequestDispatchType DISABLED -nouseAutoLink -MapModulesToServers [[ %MODULE_NAME% %WAR_FILE%,WEB-INF/web.xml WebSphere:cell=%WAS_HOST%Network,cluster=%CLUSTER%+WebSphere:cell=%WAS_HOST%Network,node=%WEB_NODE%,server=%WEB_NODE% ]]]' )
directly on the WAS server. it works, and should prove the AdminApp.update and it's options and parameters are good.
it seems to me that over a SOAP deployment, AdminApp.update truncated the WAS_HOST and does not use the Full-Qualified-Hostname.
What I am doing wrong, and how can I resolve this?
I have another machine set that are accessible from the Internet via the Short-Hostname, the same command line works perfectly over SOAP connector.

It turns out that a security restriction causes the issue.
The target WAS server is in DMZ .com, while the build machine is in the blue .xxx, file transfer from .xxx to .com is not allowed based on the security policies of the organization.
After adding the target WAS servers into the C:\Windows\System32\Drivers\etc\hosts of the build machine, the deployment goes successfully.

Related

WLST - Cannot connect() with HTTPS - T3S Protocol - Port 9002

We changed the configuration of our WebLogic servers to use HTTPS and T3S for connections and use the secure encrypted port 9002 instead of cleartext port 7001. However when using the Web Logic Scripting Tool (WLST)'s connect() function, errors are thrown. One such error is as follows:
WLSTException: Error occurred while performing connect : Cannot connect via t3s or https. If using demo certs, verify that the -Dweblogic.security.TrustKeyStore=DemoTrust system property is set. : t3s://DatServer:9002: Destination 10.10.100.3, 9002 unreachable; nested exception is:
javax.net.ssl.SSLHandshakeException: General SSLEngine problem; No available router to destination
Use dumpStack() to view the full stacktrace :
The syntax of the connect function is: connect('user', 'password', 't3s://host:9002')
This connect() function works fine before the switch from HTTP to HTTPS. Now we cannot connect to the remote admin server using the connect command. Does anyone have any idea how to fix this?
I read some interesting help options but none of them seemed to work. These help suggestions and tips are located here: https://community.oracle.com/thread/1036828
We were able to connect to the remote host and port via telnet. We saw that the port is open and listening for connections on the loop back address with netstat. We tried adding these options to the script invocation: java -cp /path/to/weblogic.jar weblogic.WLST -Dweblogic.security.TrustKeyStore=DemoTrust -Dssl.debug=true Dweblogic.security.SSL.ignoreHostnameVerification=true -Djava.security.egd=file:/dev/./urandom but this also did not work.
We enabled tunneling in the General tab of WebLogic but not in the HTTP tab. I am not the one in control of the server so I just have to suggest things and hope that the instructions are followed.
I get it running in 12.2. by adding to
../oracle_common/common/bin/setWlstEnv_internal.sh
at the end the following lines (youu need to customize line 5 und 6, the values in brackets):
JAVA_OPTIONS="-Dweblogic.ssl.JSSEEnabled=true ${JAVA_OPTIONS}"
JAVA_OPTIONS="-Dweblogic.security.SSL.enableJSSE="true" ${JAVA_OPTIONS}"
JAVA_OPTIONS="-Dweblogic.security.SSL.ignoreHostnameVerification=true ${JAVA_OPTIONS}"
JAVA_OPTIONS="-Dweblogic.security.TrustKeyStore=CustomTrust ${JAVA_OPTIONS}"
JAVA_OPTIONS="-Dweblogic.security.CustomTrustKeyStoreFileName= ${JAVA_OPTIONS}"
JAVA_OPTIONS="-Dweblogic.security.CustomTrustKeyStorePassPhrase= ${JAVA_OPTIONS}"
JAVA_OPTIONS="-Dweblogic.security.CustomTrustKeyStoreType=JKS ${JAVA_OPTIONS}"
export JAVA_OPTIONS
and modifying in
../oracle_common/common/bin/wlst_internal.sh
the line starting with
eval '"${JAVA_HOME}/bin/java"' ${JVM_ARGS} ...
by adding ${JAVA_OPTIONS}
so that it looks as follows:
eval '"${JAVA_HOME}/bin/java"' ${JVM_ARGS} ${JAVA_OPTIONS} weblogic.WLST '"$#"'
Hope this helps, allthough modifying scripts that are named "..internal.." doesn´t give me a good feeling
export this before running wlst.sh
export WLST_PROPERTIES=" -Dweblogic.security.TrustKeyStore=CustomTrust -Dweblogic.security.CustomTrustKeyStoreFileName=/u01/oracle/properties/truststore.jks -Dweblogic.security.CustomTrustKeyStoreType=jks -Dweblogic.security.CustomTrustKeyStorePassPhrase=qaz#1234 " ;

Access WildFly10 with JMX fails

I'm trying to acces a virtualbox machine with a WildFly10 via JMX from my local machine. In the JConsole I'm using the following parameters:
remote process: service:jmx:http-remoting-jmx://172.28.128.3:9990
username: test
password: test
Both username and password works, because I can acces WildFly with that username/password on 172.28.128.3:9990
The message is the following:
Secure connection failed. Retry insecurely?
If i click yes, then this appears:
Connection failed: Retry?
What am I missing?
EDIT:
I've seen that if I execute Jconsole.exe -debug I can see this error at the connection time:
java.net.MalformedURLException: Unsupported protocol: http-remoting-jmx
You need to include the $JBOSS_HOME/bin/client/jboss-client.jar in the JConsole class path:
[steve#steves-mbp wildfly-10.1.0.Final]$ jconsole \
-J-Djava.class.path=$JAVA_HOME/lib/jconsole.jar:$JBOSS_HOME/bin/client/jboss-client.jar
Your service:jmx:http-remoting-jmx://172.28.128.3:9990 URL will then work, or at least something similar did it for me.

python-memcache memcached -- I installed on centos virtualbox but it get/set never seem to work

I'm using python. I did a yum install memcached followed by a easy_install python-memcached
I used the simple test program from the Help(memcache). When I wasn't getting the proper answers I threw in some print statements:
[~/test]$ cat m2.py
import memcache
mc = memcache.Client(['127.0.0.1:11211'], debug=0)
x = mc.set("some_key", "Some value")
print 'Just set a key and value into the cache (suposedly)'
value = mc.get("some_key")
print 'Just retrieved that value from the cache using the key'
print 'X %s' % x
print 'Value %s' % value
[~/test]$ python m2.py
Just set a key and value into the cache (suposedly)
Just retrieved that value from the cache using the key
X 0
Value None
[~/test]$
The question now is, what have I failed to do in my installation? It appears to be working from an API perspective but it fails to put anything into the memcache share area.
I'm using a virtualbox vm running centos
[~]# cat /proc/version
Linux version 2.6.32-358.6.2.el6.i686 (mockbuild#c6b8.bsys.dev.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) ) #1 SMP Thu May 16 18:12:13 UTC 2013
Is there a daemon that is supposed to be running? I don't see an obvious named one when I do a ps.
I tried to get pylibmc installed on my vm but was unable to find a working installation so for now will see if I can get the above stuff working first.
I discovered if i ran straight from the python console GUI i get a bit more output if I set debug=1
>>> mc = memcache.Client(['127.0.0.1:11211'], debug=1)
>>> mc.stats
{}
>>> mc.set('test','value')
MemCached: MemCache: inet:127.0.0.1:11211: connect: Connection refused. Marking dead.
0
>>> mc.get('test')
MemCached: MemCache: inet:127.0.0.1:11211: connect: Connection refused. Marking dead.
When I try to use per the example telnet to connect to the port i get a connection refused:
[root#~]# telnet 127.0.0.1 11211
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
[root#~]#
I tried the instructions I found on the net for configuring telnet so localhost wouldn't be disabled:
vi /etc/xinetd.d/telnet
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = no
}
And then ran the commands to restart the service(s):
service iptables stop
service xinetd stop
service iptables start
service xinetd start
service iptables stop
I ran with both cases (iptables started and stopped) but it has no effect. So I am out of ideas. What do I need to do to make it so the PORT will be allowed? if that is the problem?
Or is there a memcached service that needs to be running that needs to open up the port ?
well this is what it took to get it working: ( a series of manual steps )
1) su -
cd /var/run
mkdir memcached # this was missing
In the memcached file I added "-l 127.0.0.1" to the OPTIONS statement. It's apparently a listen option. Do this for steps 2 & 3. I'm not certain which file is actually used at runtime.
2) cd /etc/sysconfig
cp memcached memcached.old
vi memcached
3) cd /etc/init.d
cp memcached memcached.old
vi memcached
4) Try some commands to see if the server starts now
/etc/init.d/memcached start
/etc/init.d/memcached status
/etc/init.d/memcached stop
/etc/init.d/memcached restart
I tried opening a browser, but it never seemed to actually display anything so I don't really know how valid this approach is. I'm not running apache or anything like this so perhaps its not relevant to my cause. Perhaps I would have to supply a ?key=blah or something.
5) http://127.0.0.1:11211
6) Now it should be ready to go. If one runs the test shown with the following it should work. At least it did for me. doing the help(memcache) will display a simple program. just paste that in and it should work just fine.
[~]$ python
>>> import memcache
>>> help(memcache)

Error with "Get Started" on Oracle Express 11g

this is my first post so I will try to be as descriptive as possible. Please let me know if there is anything missing:
So I am trying to install Oracle Express 11g, after I download the zip file "OracleXE112_Win32" - I unzip it, and open Disk 1 then setup. I go through the entire installation process without any problems. However when I go to open "Get Started" I come across the following error:
"Windows cannot find 'http:/.127.0.0.1:%HTTPPORT%/apex/f?p=4950'. Make sure you typed the name correctly, and then try again. -- After googling this, I was told to change %HTTPPORT% to 8080.
If I do this when I click on "Get Started" the following error shows up:
"Firefox can' establish a connection to the server at 127.0.0.1:8080."
I need this to work, so that I can sooner or later connect this to my eclipse, so that I can start doing my homework for my Java Programming class. Any help is greatly appreciated, thank you so much!
I have found one solution for this problem. In order to explain my solution, I have used some aliases referring to my real parameters. These are:
[ME] = my user name
[MYHOST] = my current workstation hostname (netbios name as well)
[MYHOST.mycompany.com] = my worksation's fully qualified domain name
At the beginning I had the same situation as mentioned above: I was unable to connect to the apex service even after successful installation.
First I have used the tnsping oracle utility:
C:\Users\ME>tnsping MYHOST
This was the answer:
TNS Ping Utility for 32-bit Windows: Version 11.2.0.2.0 - Production
Copyright (c) 1997, 2010, Oracle. All rights reserved.
Used parameter files:
C:\oraclexe\app\oracle\product\11.2.0\server\network\admin\sqlnet.ora
Used HOSTNAME adapter to resolve the alias
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=
(PROTOCOL=TCP)(HOST=fe80::5d34:78a:5862:64%20)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=fe80::c27:54a4:1600:86a4%26)(PORT=1521))(ADDRESS=
(PROTOCOL=TCP)(HOST=fe80::38ab:cdb4:dd77:7ed9%12)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)
(HOST=10.9.32.208)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.1)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.106)(PORT=1521)))
TNS-12541: TNS:no listener
You see above a lot of currently active different IP addresses. Only the most important 127.0.0.1 is missing. I work on notebook so the network is "almost always" changing (WLAN, 3G, HSDPA, Ethernet etc.) only the localhost is fixed. And that was the real case of the trouble. (When I was working at the office environment connected to the office network it was also working.)
When I was in this situation I also started to use the lsnrctl oracle utility.
I have seen the following:
LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for 32-bit Windows: Version 11.2.0.2.0 - Production
Default Service XE
Listener Parameter File /oraclexe/app/oracle/product/11.2.0/server\network\admin\listener.ora
Listener Log File C:\oraclexe\app\oracle\diag\tnslsnr\MYHOST\listener\alert\log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=MYHOST.mycompany.com)(PORT=1521)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
You can see that the service for the apex at 8080 port is missing !!!
I have tried also the normal ping which worked perfectly:
C:\Users\ME>ping MYHOST.mycompany.com
The result was:
MYHOST.mycompany.com [fe80::c27:54a4:1600:86a4%26] ping
response fe80::c27:54a4:1600:86a4%26: time<10 ms
...
You can realize the IPv6 address also exists in my tnsping trial as well.
So I have decided to define MYHOST in my local hosts file directly:
127.0.0.1 localhost MYHOST MYHOST.mycompany.com
Testing now with ping:
C:\Users\ME>ping MYHOST
And the answer:
MYHOST.mycompany.com [127.0.0.1] ping:
response 127.0.0.1: byte=32 time<10 ms. TTL=128
...
At this point I have restarted (stopped and started again) the both running Oracle services (just for sure):
OracleServiceXE
OracleXETNSListener
And look the miracle:
C:\Users\ME>lsnrctl
LSNRCTL for 32-bit Windows: Version 11.2.0.2.0 - Production
LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for 32-bit Windows: Version 11.2.0.2.0 - Production
Default Service XE
Listener Parameter File /oraclexe/app/oracle/product/11.2.0/server\network\admin\listener.ora
Listener Log File C:\oraclexe\app\oracle\diag\tnslsnr\MYHOST\listener\alert\log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=MYHOST.mycompany.com)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=MYHOST.mycompany.com)(PORT=8080))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "XEXDB" has 1 instance(s).
Instance "xe", status READY, has 1 handler(s) for this service...
Service "xe" has 1 instance(s).
Instance "xe", status READY, has 1 handler(s) for this service...
The command completed successfully
LSNRCTL>
You can see the important line with PORT=8080 and service XE instance.
So I am happy the getting started URL is working again.
What browser are you using? I experienced the same issue with Chrome. Download firefox, Right click the "Get Started With Oracle Database 11g Express Edition" icon and change the "opens with" option to firefox.
Simple solution:
You need to directly tell where your http port is. To do so; open up the folder where your Oracle is stored and navigate to server folder( in my case C:\Oracle\oraclexe\app\oracle\product\11.2.0\server) in that folder right click to Get_Started file and choose properties. There you can hand type your http port which is usually 8080 in my case: ....127.0.0.1:8080/apex/f?p=4950
The problem should be solved.
Hope this helps you get through it..
Pinar U.S.
Right Click on the "Get Started" icon and click on the properties and select General tab. Click on change button and select other browser installed in your system other than the current one . after setting this up, you'll be able to open the panel.
I also experienced the same problem for this go to start-> all programs -> Oracle Database 11g Express Edition and right click on get started and click open file location and drag and drop the "Get_Started" to your browser
Ok, I found the solution. Right click on icon of "Get Started With Oracle Database 11g Express Edition", then "properties". Then click "General tab" and then you will see option "change", click on that and then select your browser, click "apply" and "ok". And then start the Database again.
Drag and drop get started link into browser address bar worked great for me, I tried EVERYTHING else, adding port to hosts, changing port in properties etc. nothing worked, until I dragged and dropped... So damn simple, wish I did that hours ago
Your solution is partially correct buddy. You need to match the entries in the file:
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN\listener.ora
(the entries with the --> mark)
:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
--> (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
--> (ADDRESS = (PROTOCOL = TCP)(HOST = myserver.company.com)(PORT = 1521))
)
)
:
With the entries in the file:
C:\Windows\System32\drivers\etc\hosts
(the entries with the --> mark)
:
--> 127.0.0.1 localhost
--> 1.2.3.4 myserver myserver.company.com
:
Finally, under Administrator account do:
C:> lsnrctl stop
C:> lsnrctl start
Solved. No need for changing name, no drag & drop either.

JBoss 5.1 binds to host address while run in vserver with -b <guest address>

while starting JBoss 5.1.0.GA in virtual server machine on Debian (linux-VServer technology) I get the following error:
ERROR [org.jboss.kernel.plugins.dependency.AbstractKernelController] (main) Error installing to Start: name=jboss.remoting:protocol=rmi,service=JMXConnectorServer state=Create mode=Manual requiredState=Installed
java.io.IOException: Cannot bind to URL [rmi://10.1.2.11:1090/jmxconnector]: javax.naming.NoPermissionException [Root exception is java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.AccessException: Registry.Registry.bind disallowed; origin /AA.BB.CC.DD is non-local host]
where AA.BB.CC.DD is host machine name, 10.1.2.11 is vserver guest with JBoss and JBoss is started with -b 10.1.2.11 (I also tried -Djboss.bind.address=10.1.2.11 - the same result).
10.1.2.11 is bound to dummy2 interface on host (serving 10.1.2.1 network).
The root exception is strange - why JBoss wants to bind to host address AA.BB.CC.DD? There were no problems with 4.2.3.GA on the same machine, also started with -b 10.1.2.11.
It starts correctly when no params present - binds to localhost and everything is ok, but it MUST be bound to 10.1.2.11 to be visible by Apache on another vserver guest, acting as proxy.
I thought that it can be fixed by setting net.ipv4.conf.all.promote_secondaries=1 via sysctl (was 0) but it didn't help much.
Has anyone had such problem?
Regards,
bart
Could you confirm if The port //10.1.2.11:1090/ isn't being used by another process (even a zombie one : P)?
There was a problem similar at JbossJIRA a couple of years ago... But i though it was already fixed.