Weblogic hosting
What is the best way to host multiple customers web appliactions on the same server
machine (The web apps are really the same app just configured differently). The database
will store the customers data in one instance of Oracle seperated by a customer ID
or something similar. However, I am confused as to which way to use one box to serve
multiple customers with WLS. Should I have several instances of WLS running on a
single box, should I have each app be configured as a different web app. What things
are shared across web apps, across seperate instances of WLS on the same box? What
is the suggested way of handling this situation?
Thanks
Bye
Hi.
Hard to say, really. Mostly it depends on your app, your hardware, and how much load you
will experience.
Usually a single instance of WLS will use fewer system resources (memory, cpu) than multiple
instances. Multiple webapps on a single instance will use a common pool of execute threads
so you will want to load test and adjust the number of execute threads.
I could make more suggestions, but it really comes down to what kind of configuration makes
sense for your apps, plus your own load testing. Maybe I could help more if you had a more
specific question.
Regards,
Michael
Tedie West wrote:
What is the best way to host multiple customers web appliactions on the same server
machine (The web apps are really the same app just configured differently). The database
will store the customers data in one instance of Oracle seperated by a customer ID
or something similar. However, I am confused as to which way to use one box to serve
multiple customers with WLS. Should I have several instances of WLS running on a
single box, should I have each app be configured as a different web app. What things
are shared across web apps, across seperate instances of WLS on the same box? What
is the suggested way of handling this situation?
Thanks
Bye--
Michael Young
Developer Relations Engineer
BEA Support
Similar Messages
-
Are there are no weblogic hosted web services on the internet?
I want to find a weblogic hosted web service for a demo. But I can't find a single internet based example that is explicitly hosted on weblogic.
Does anyone have an example web service I can use ?
Surely BEA would benefit from publishing a few examples...ONLY the carrier to which it is locked can legally unlock it.
No one else at all can do this.
As far as I know the Verizon iphone will only work with Verizon or foreign carriers if unlocked by Verizon. -
WebLogic Hosting to deploy Jdeveloper for testing
Hello,
I have been searching for a WebLogic Hosting to deploy jdeveloper application for testing but couldn't find one with a low cost.
I will be getting a license soon to create a cloud for developer to test their products. If any one is interested in getting an account for demostrating their application, please do not hesitate to contact me at [email protected] to put your name on the list.
Let other developer know who have been struggling to find a WebLogic Host for testing Jdeveloper products.
If you think this idea is helpful let me know and if you think is not a good idea let me know and tell me why?Hi,
Well Oracle public cloud is almost there cloud.oracle.com and one can use Amazon cloud service to host weblogic applications http://aws.amazon.com/solutions/global-solution-providers/oracle/ as well.
Zeeshan -
How to run ADF command-line test-client on standalone weblogic host
I have followed the steps to create a test client for the ADF application. In used the following link:
http://download.oracle.com/docs/cd/B31017_01/web.1013/b25947/bcquerying007.htm
The above link does not talk about how to setup the environment where the standalone weblogic is installed to be able to run the test client.
I can run it in the jdeveloper environment.
I can also run from the command line on the development host, by cut-paste the command from the jdeveloper output log tab.
I am trying to run this client on the machine where we have a weblogic installed (standalone) for testing. We can run our ADF application from the browser with no issues. We want to automate and run some testing related to the ADF model (non-viewcontroller part) from the command line on this test stage.
Which/Where are the ADF libraries?
How can I add our application jar deployed on the weblogic (ear file) to the CLASSPATH?
What other libraries ADF/Weblogic do I need for the command line test client?
What am I missing?
Thanks for any help.
Edited by: mmunawar on Jul 2, 2011 1:03 PM
Edited by: mmunawar on Jul 2, 2011 1:04 PMcreate weblogic application server connection from jdeveloper and then Deploy that application through jdeveloper in the weblogic application server and then run it from jdeveloper and see if its working.
-
Weblogic SSO with AD - My Try - What's wrong?
Dear All
I'm trying to setup Weblogic to Authenticate using AD and have SSO with a Windows workstation(joined to the domain).
I just setup an Active Directory(Win2K3), a Windows XP(SP2) and a Linux System(CentOS5) with Weblogic 10.3.
I'm wondering what is wrong with my configuration. I can only logon on Adminstration Console using weblogics local users, and even with entering username(those which created on AD) and password AD Authentication does not work.
Anyone has simliar experiance or any clue?
Appreciated
TIA
Cheers
Here is the setup:
The domain is: example.com and machines are: dc.example.com (AD), winclient.example.com (Windows XP joined to the example.com domain) and weblogic.example.com (CentOS with Weblogic 10.3 installed)
The hosts file on all three machines are filled with their FQDN, Machine Name and corresponding IP addresses. They all have ping working successfully between each two of them. Firewalls are checked to be off.
These are the steps I came through based on documentation I could found on the net:
h1. 0. Configuring Your Network Domain to Use Kerberos
In Linux Machine(Weblogic Server) edit Kerberos configuration file for appropriate values:
*/etc/krb5.conf*
\[logging\]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
\[libdefaults\]
default_realm = EXAMPLE.COM
default_tkt_enctypes = des-cbc-crc
default_tgs_enctypes = des_cbc_crc
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime =28800
forwardable = yes
\[realms\]
EXAMPLE.COM = {
kdc = 192.168.1.193:88
admin_server = dc
default_domain = EXAMPLE.COM
\[domain_realm\]
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM
\[kdc\]
profile = /var/kerberos/krb5kdc/kdc.conf
\[appdefaults\]
autologin = true
forward = true
forwardable = true
encrypt = true
pkinit = {
allow_pkinit = false
h1. 1. Create two users on AD: "New->User" with "User must change password at next logon" option cleared (not tidked)
weblogic (for weblogic service) (with password = "password1")
weblogicusr (the user which should access Weblogic Administration Console) ("password2")
* Note that group membership of these two users are left default.(Domain Users)
h1. 2. For "weblogic" & "weblogicusr" user set these Account Optiones:
- Use DES encryption types for this account (ticked)
- Do not require Kerberos preauthentication (cleared)
* then reset the password again for "weblogic" (with password = "password1") and "weblogicusr" (with "password2").
h1. 3. Create Service Principal Names for Weblogic Server and User on Win2K3 machine:
- >setspn -a host/weblogic.example.com weblogic
- >setspn -a HTTP/weblogic.example.com weblogic
here is the result
C:\Documents and Settings\Administrator.DC>setspn -L weblogic
Registered ServicePrincipalNames for CN=weblogic,CN=Users,DC=example,DC=com:
HTTP/weblogic
host/weblogic
HTTP/weblogic.example.com
host/weblogic.example.com
and
- >setspn -a HTTP/weblogic.example.com weblogicusr
and the result
C:\Documents and Settings\Administrator.DC>setspn -L weblogicusr
Registered ServicePrincipalNames for CN=Weblogic User,CN=Users,DC=example,DC=com:
HTTP/weblogicsrv.example.com
HTTP/weblogicsrv
h1. 4. Create the keytab file for Weblogic Server:
On AD machine issue:
(ktpass from MS Windows Support Tools)
>ktpass -princ host/[email protected] -pass password1 -mapuser weblogic -out c:\temp\weblogic.host.keytab
>ktpass -princ HTTP/[email protected] -pass password1 -mapuser weblogic -out c:\temp\weblogic.HTTP.keytab
(ktab from JRE 6)
>ktab -k c:\temp\weblogic.keytab -a [email protected]
Password for [email protected]:*password1*
Done!
Service key for [email protected] is saved in c:\temp\weblogic.keytab
** Note I could not kinit successfully merely with weblogic.host.keytab and/or weblogic.HTTP.keytab, I got this error +"Key table entry not found while getting initial credentials"+ how ever the keytab I created using ktab("weblogic.keytab") works fine in this case, so I decided to merge whole three of them into a keytab.
>\[root@weblogic keytabs\]# kinit -k -t weblogic.host.keytab [email protected]
>kinit(v5): Key table entry not found while getting initial credentials
h1. 5. Port and Merge keytabs
Then I ported these three files to the Linux Machine(weblogic.example.com): weblogic.host.keytab, weblogic.HTTP.keytab and weblogic.keytab
and merged into one keytab:
ktutil: "rkt weblogic.host.keytab"
ktutil: "rkt weblogic.HTTP.keytab"
ktutil: "rkt weblogic.keytab"
ktutil: "wkt weblogic-keytab"
ktutil: "q"
* then put the result keytab "weblogic-keytab" somewhere in Weblogic Path:
>/root/bea/user_projects/domains/base_domain/kerberos
h2. 5.1 Test the keytab and kerberos configuration
>\[root@weblogic keytabs\]# kinit -k -t weblogic-keytab [email protected]
>\[root@weblogic keytabs\]# klist
>Ticket cache: FILE:/tmp/krb5cc_0
>Default principal: [email protected]
>
>Valid starting Expires Service principal
>09/04/09 16:16:42 09/05/09 00:16:42 krbtgt/[email protected]
>
Kerberos 4 ticket cache: /tmp/tkt0
klist: You have no tickets cached
h1. 6. Creating a JAAS Login File
Create krb5Login.conf and put it in here: "/root/bea/user_projects/domains/base_domain/kerberos/"
krb5Login.conf
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
principal=*"[email protected]"* useKeyTab=true
keyTab=*/root/bea/user_projects/domains/base_domain/kerberos/weblogic-keytab* storeKey=true;
com.sun.security.jgss.accept {
com.sun.security.auth.module.Krb5LoginModule required
principal=*"[email protected]"* useKeyTab=true
keyTab=*/root/bea/user_projects/domains/base_domain/kerberos/weblogic-keytab* storeKey=true;
h1. 7. Modify startup options
add these option to "/root/bea/user_projects/domains/base_domain/bin/startWebLogic.sh"
h2. 7.1 Kerberos
-Djava.security.krb5.realm=EXAMPLE.COM
-Djava.security.krb5.kdc=dc.example.com
-zjava.security.auth.login.config=$PATHTOKRB/krb5Login.conf
-Djavax.security.auth.useSubjectCredsOnly=false
-Dweblogic.security.enableNegotiate=true h2. 7.2 Debug
-DDebugSecurityAdjudicator=true
-Dweblogic.debug.DebugSecurityAtn=true
-Dsun.security.krb5.debug=true
-Dweblogic.StdoutDebugEnabled=true";
-Dweblogic.log.StdoutSeverity=Debugh1. 8. Configuring the Identity Assertion Provider
In Weblogic Administration I created a Security Realm called "example.com" with everything default and made it default. Then restarted the Weblogic Server.
Again in Administation Console did this to example.com Security Realm:
h2. 8.1 -> Prividers: Add 3 Providers
Negotiate WebLogic Negotiate Identity Assertion provider 1.0
DIA WebLogic Identity Assertion provider 1.0
AD Provider that performs LDAP authentication 1.0 (Active Directory provider)
Default WebLogic Authentication Provider 1.0
h2. 8.2 -> Change the default parameters
h3. 8.2.1 Negotiate WebLogic Negotiate Identity Assertion provider
-> Base64 Decoding Required: false (No Change, but shouldn't it be true and how to change?)
-> Form Based Negotiation Enabled: Removed the tick
h3. 8.2.2 DIA WebLogic Identity Assertion provider (no changes)
(no changes)
h3. 8.2.3 AD Provider that performs LDAP authentication (Active Directory provider)
-> Control Flag: *SUFFICIENT*
-> User Name Attribute: *sAMAccountName*
-> Principal: *HTTP/[email protected]*
-> Host: *192.168.1.193*
-> User Base DN: *CN=Users,DC=example,dc=com*
-> Propagate Cause For Login Exception: *ticked*
-> Group Base DN: *CN=Users,DC=example,dc=com*
-> Credential: *password1*
* others left with their default values.
h1. 9. Configuring an Internet Explorer Browser
On Windows XP machine (winclient.example.com):
h2. 9.1 Configure Local Intranet Domains
- In Internet Explorer, Tools > Internet Options -> the Security tab -> Local intranet -> Sites:
> "Include all sites that bypass the proxy server" *ticked*
> "Include all local (intranet) sites not listed in other zones" *ticked*
- then in -> Advanced Dialog Box added this:
> weblogic.example.com
h2. 9.2 Configure Intranet Authentication
- In Internet Explorer, Tools > Internet Options -> the Security tab -> Local intranet -> Custome Level:
> In the Security Settings dialog box -> the User Authentication section.
> "Automatic logon only in Intranet zone" *ticked*
h2. 9.3 The Proxy Settings
No proxies are enabled
h2. 9.4 Enable Integrated Windows Authentication
- In Internet Explorer, Tools > Internet Options -> Advanced tab -> Security section:
> "Enable Integrated Windows Authentication" *ticked* by default
Edited by: Mehdi Sarmadi on Sep 4, 2009 5:51 AMI found something in Logfile:
<Sep 4, 2009 6:17:39 PM IRDT> <Debug> <SecurityAtn> <BEA-000000> <LDAP Atn Login username: weblogicusr>
<Sep 4, 2009 6:17:39 PM IRDT> <Debug> <SecurityAtn> <BEA-000000> <new LDAP connection to host 192.168.1.193 port 389 use local conne
ction is false>
<Sep 4, 2009 6:17:39 PM IRDT> <Debug> <SecurityAtn> <BEA-000000> <created new LDAP connection LDAPConnection { ldapVersion:2 bindDN:
""}>
<Sep 4, 2009 6:17:39 PM IRDT> <Debug> <SecurityAtn> <BEA-000000> <connection failed netscape.ldap.LDAPException: error result (49);
80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 525, vece^@>
<Sep 4, 2009 6:17:39 PM IRDT> <Debug> <SecurityAtn> <BEA-000000> <[Security:090294]could not get connection>
According to this post: Re: WL10.3 and SSO and Active Directory
a correct ldap connection should look like this:
<LDAP Atn Login username: Administrator>
<userExists? user:Administrator>
<new LDAP connection to host 10.10.0.254 port 389 use local connection is false>
<created new LDAP connection LDAPConnection { ldapVersion:2 bindDN:""}>
<connection succeeded>
*<getConnection return conn:LDAPConnection {ldaps://10.10.0.254:389 ldapVersion:3 bindDN:"HTTP/[email protected]"}>
<getDNForUser search("CN=Users,DC=DOMAIN,dc=local", "(&(&(cn=Administrator)(objectclass=user))(!(userAccountControl:1.2.840.113556.1.4.803:=2)))", base DN & below)>xist>*
Moreover, I turned AD's debug logging and this is what happens when I try to login with a AD user: Why "Anonymous Logon"?!
Event Type: Information
Event Source: NTDS LDAP
Event Category: LDAP Interface
Event ID: 1535
Date: 9/4/2009
Time: 6:47:07 PM
User: NT AUTHORITY\*ANONYMOUS LOGON*
Computer: DC
Description:
Internal event: The LDAP server returned an error.
Additional Data
Error value:
80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 525, vece
Any help would be greatly appreciated -
PI 7.1: Weblogic (JMS adapter) - Connectivity & MONITORING!!
Hi ALL
WE have a requirement to integrate PI with Weblogic server using JMS adapter.
However, we would like to host the JMS queues in PI, so that we have end to end monitoring capability.
We do not want Weblogic Server to host these queue, instead want PI 7.1 to maintain these quese ... so that we can monitor these interfaces end -to- end.
Please, let us know if anybody has done this Weblogic integration with JMS queue monitoring within PI 7.1.
So, the main GOAL is to have JMS Queue monitoring in PI, where we have visibility to how many queues are running and the no.of messages in sent in each queue and failures if any.
Also, is there any Queue monitoring under /nwa adminstration; where we can see the queue created in PI
So, if anyone has implemented this in PI 7.1, please let us know.
Your help is greatly appreicated!!
Thank you,
Patrick.
Edited by: Patrick Jones on Sep 25, 2009 6:24 PM
Edited by: Patrick Jones on Sep 25, 2009 8:58 PM
Edited by: Patrick Jones on Sep 26, 2009 12:09 AM
Edited by: Patrick Jones on Sep 26, 2009 10:04 PM
Edited by: Patrick Jones on Sep 28, 2009 2:28 AMHi Patrick,
We've done something similar but with PI 7.0 & Weblogic hosting the queue so I'm not sure how useful this will be to you...
Firstly, great move to have the queue/s hosted in PI (in my opinion), for several reasons:
- You won't have to keep investigating whether or not Weblogic actually put the message on the queue/s or not.
- It makes monitoring a bit easier.
- For some reason on PI 7.0, when Weblogic or stops the queue services then PI stops polling for messages although we have green lights in RWB communication channel monitoring. If we stop & start the comm channel/s then the JMS Adapter starts picking up messages off the queue. A couple of SAP notes point to a known Weblogic issue with the way Weblogic works with initial contexts. Hosting the queues in PI would take care of this problem.
Currently we are using HermesJMS to monitor all JMS queue/s with number of messages & possible message backlog in the queues. We are also working on setting up Business Processing Monitoring that can do full end-to-end monitoring of a business process across the landscape not just in within PI. I'm also curious to see what's available in PI 7.1 for JMS queue monitoring.
Regards, Trevor -
Hi All,
In WebLogic server when we checked the health status through monitoring tab. Initially ,we find the Analytic provider services and Essbase Administrative services were UNKNOWN.
we tried restarting the specific services (stopped and started the "Stop Analytic Provider services(Oracle Weblogic 10)" ,"Stop Essbase Administration services (Oracle Weblogic 10)" ).it has no effect still the status remains same as "UNKNOWN". But the services are running fine and the EAS console also working fine.After that,we restarted the weblogic hosting server. Now the status changed as "SHUTDOWN". Now also the services are running fine and the EAS console also working fine. How to make the health status of both the services to be RUNNING and why it is showing like this eventhough the services are working fine.?
We have gone through the Oracle Document ID:1563358 which we felt relevant to this. Please guide through whether to apply patches. Our weblogic server version is 10.3.6.0.Hi,
Patches in this document Doc ID 1563358.1 belongs to weblogic versions from 10.3.4 to 12.1.1 so is it your weblogic version is within this range?
Kindly check your weblogic version using below commands.
cd $DOMAIN_HOME/bin
. ./setDomainEnv.sh
$ java Weblogic.version
Or for detail
$ java Weblogic.version –verbose
Regards,
Jagx. -
Mqseries and weblogic: XA transactions with MessagingBridge
Hello.
Due to usage of XA transaction with MQSeries on host rather that weblogic host, require Extended Transactional Client - i have tried to use MessagingBridge feature in weblogic8.1.
So, when we send message to JMS queue (source destination for messaging bridge) in transactional context it will be forwarded to MQSeries destination only after commit transaction. And if transaction will be crashed, MessagingBridge will not forward message from JMS to MQSeries.
It is good substitution for XA transactions with MQSeries, i hope.
In config.xml it looks like
<BridgeDestination
AdapterJNDIName="eis.jms.WLSConnectionFactoryJNDIXA"
Name="mq_q_xa_bridgeQueue" Properties="DestinationJNDI=TEST2;DestinationType=Queue;ConnectionURL=file:/c:/jndidir;InitialContextFactory=com.sun.jndi.fscontext.RefFSContextFactory;ConnectionFactoryJNDI=QCF2"/>
<JMSBridgeDestination
ConnectionFactoryJNDIName="thqueueconnectionfactory"
DestinationJNDIName="bridgequeue" Name="THbridgequeue"/>
<MessagingBridge AsyncEnabled="false" Name="wls2mqXA"
QOSDegradationAllowed="false" QualityOfService="Exactly-once"
SourceDestination="THbridgequeue" Started="true"
TargetDestination="mq_q_xa_bridgeQueue" Targets="cgServer"/>
And this implementation of XA transaction in weblogic+mqseries work.
Does it have any bugs or hole or another disadvantages?
Thanks.
btw, i have found some interesting product at https://jmsbridgesxa.projects.dev2dev.bea.com/.
But it not works on my environment (weblogic and mqseries on different hosts)Hello.
Due to usage of XA transaction with MQSeries on host rather that weblogic host, require Extended Transactional Client - i have tried to use MessagingBridge feature in weblogic8.1.
So, when we send message to JMS queue (source destination for messaging bridge) in transactional context it will be forwarded to MQSeries destination only after commit transaction. And if transaction will be crashed, MessagingBridge will not forward message from JMS to MQSeries.
It is good substitution for XA transactions with MQSeries, i hope.
In config.xml it looks like
<BridgeDestination
AdapterJNDIName="eis.jms.WLSConnectionFactoryJNDIXA"
Name="mq_q_xa_bridgeQueue" Properties="DestinationJNDI=TEST2;DestinationType=Queue;ConnectionURL=file:/c:/jndidir;InitialContextFactory=com.sun.jndi.fscontext.RefFSContextFactory;ConnectionFactoryJNDI=QCF2"/>
<JMSBridgeDestination
ConnectionFactoryJNDIName="thqueueconnectionfactory"
DestinationJNDIName="bridgequeue" Name="THbridgequeue"/>
<MessagingBridge AsyncEnabled="false" Name="wls2mqXA"
QOSDegradationAllowed="false" QualityOfService="Exactly-once"
SourceDestination="THbridgequeue" Started="true"
TargetDestination="mq_q_xa_bridgeQueue" Targets="cgServer"/>
And this implementation of XA transaction in weblogic+mqseries work.
Does it have any bugs or hole or another disadvantages?
Thanks.
btw, i have found some interesting product at https://jmsbridgesxa.projects.dev2dev.bea.com/.
But it not works on my environment (weblogic and mqseries on different hosts) -
NullPointerException in WebLogic while accessing web service from client
Hi all,
I have an SPML Web Service developed. The java class from WSDL was generated using wsdlc
<wsdlc srcWsdl="schema/oracle_ws_spmlv2.wsdl" destJwsDir="${classes.dir}" type="JAXWS" explode="true"/>
and then
<jwsc classpath="..." classpathref="wls.jars" srcdir="src/main" destdir="${classes.dir}" keepGenerated="yes">
<jws file="com/oracle/xmlns/idm/identity/webservice/spmlservice/SPMLService_SPMLServiceProviderSoapImpl.java" compiledWsdl="target/oracle_ws_spmlv2_wsdl.jar" type="JAXWS">
<WLHttpTransport contextPath="OIMSPMLWebService" serviceUri="${ear.deployed.name}" portName="SPMLServiceProviderSoap"/>
</jws>
</jwsc>
I have deployed the ear in WLS and generated the client classes.
<clientgen wsdl="http://${weblogic.host}:${weblogic.port}/OIMSPMLWebService/OIMspmlxsd?WSDL" destDir="${classes.dir}" type="JAXWS"/>
I run the client using java command from the terminal. First time, it runs fine. I get a valid response. But often, when I run it a second time, I get the following exception ... I need to undeploy and deploy the ear again. Any help will be appreciated!
Following error appears.
Error 500--Internal Server Error
java.lang.NullPointerException
at weblogic.wsee.jaxws.JAXWSDeployedServlet.init(JAXWSDeployedServlet.java:49)
at javax.servlet.GenericServlet.init(GenericServlet.java:241)
at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:283)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.StubSecurityHelper.createServlet(StubSecurityHelper.java:64)
at weblogic.servlet.internal.StubLifecycleHelper.createOneInstance(StubLifecycleHelper.java:58)
at weblogic.servlet.internal.StubLifecycleHelper.(StubLifecycleHelper.java:48)
at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:521)
at weblogic.servlet.internal.ServletStubImpl.checkForReload(ServletStubImpl.java:452)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:232)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:202)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3588)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2200)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2106)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1428)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)As a workaround I can start the application in debug mode, log into the Weblogic console and stop then restart the deployment and this issue goes away, sort of a pain but it does work.
-
hi weblogic users,
i have a problem in sending jms messages
across two different weblogic host/domain.
the configuration is:
jms client:
-JAX-WS webservice web app
-deployed in WebLogic Server Version: 10.3.1.0
-host: 192.168.30.133:7011
-domain: ChSoaAdminServer1
-can access server's console: http://192.168.1.22:6001/console
server:
-jms server, jms module, cf, queue configured
with subdeployment targeted to the jmsserver
-deployed in WebLogic Server Version: 10.3.2.0
-host: 192.168.1.22:6001
-domain: soa_domain
-cannot access client's console: http://192.168.30.133:7011/console
i use standard lookup method in my java client code:
String settingJmsServer="t3://192.168.1.22:6001";
String settingCF="jms/adminduk/cf";
String settingQueue="jms/adminduk/queue/central";
env=new Hashtable();
env.put( Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory" );
env.put(Context.PROVIDER_URL, settingJmsServer);
ctx = new InitialContext( env );
System.out.println("-- Destination");
ds = (Destination) ctx.lookup(settingQueue);
System.out.println("-- ConnectionFactory");
cf = (ConnectionFactory) ctx.lookup(settingCF);
but it's getting exception
when looking up the connection factory (look at the bottom of my post):
ok now, how to solve this problem?
-i tried to change the server to another host with WL 10.3.1.0 installed (so
it's the same version with the client) and its ok (receiving messages)
-i tried to deploy the WS client to the same host as the jms (WL 10.3.2.0), so no
remote lookup needed (java lookup code adjusted), it's ok
-based on the stack trace:
"Could not find dynamically generated class:
'weblogic.jms.frontend.FEConnectionFactoryImpl_1032_WLStub
(class not found) ..."
-does it mean do i've to use the same version of WL installed in the client side ??
-is WL 10.3.2.0 compatible with WL 10.3.1.0 ?
-is it possible to use a different version of weblogic (in the client/server)
in using the jms feature ?
-do the jms server must have access to client's port (7011) for it to work ?
thanks,
any info/hints/helps will be appreciated :)
---------- start error ---------
####<Mar 23, 2010 4:24:51 PM ICT> <Error> <com.sun.xml.ws.server.sei.EndpointMethodHandler>
<coolpie> <ChSoaAdminServer1> <[ACTIVE] ExecuteThread: '1' for queue:
'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1269336291921> <BEA-000000>
<***** ASSERTION FAILED *****[ Could not find dynamically generated class:
'weblogic.jms.frontend.FEConnectionFactoryImpl_1032_WLStub' ]
weblogic.utils.AssertionError: ***** ASSERTION FAILED *****[ Could not find dynamically
generated class: 'weblogic.jms.frontend.FEConnectionFactoryImpl_1032_WLStub' ]
at weblogic.utils.classfile.utils.CodeGenerator.generateClass(CodeGenerator.java:78)
at weblogic.rmi.internal.StubGenerator.hotCodeGenClass(StubGenerator.java:775)
at weblogic.rmi.internal.StubGenerator.getStubClass(StubGenerator.java:759)
at weblogic.rmi.internal.StubGenerator.generateStub(StubGenerator.java:786)
at weblogic.rmi.internal.StubGenerator.generateStub(StubGenerator.java:779)
at weblogic.rmi.extensions.StubFactory.getStub(StubFactory.java:74)
at weblogic.rmi.internal.StubInfo.resolveObject(StubInfo.java:213)
at weblogic.rmi.internal.StubInfo.readResolve(StubInfo.java:207)
at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeReadResolve(ObjectStreamClass.java:1061)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1762)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at
weblogic.jms.client.JMSConnectionFactory.readExternal(JMSConnectionFactory.java:382)
at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at
weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:197)
at weblogic.rjvm.MsgAbbrevInputStream.readObject(MsgAbbrevInputStream.java:564)
at
weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:193)
at weblogic.rmi.internal.ObjectIO.readObject(ObjectIO.java:62)
at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:240)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:348)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:259)
at weblogic.jndi.internal.ServerNamingNode_1031_WLStub.lookup(Unknown Source)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:400)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:388)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at
weblogic.deployment.jms.ForeignOpaqueReference.getReferent(ForeignOpaqueReference.java:194)
at weblogic.jndi.internal.WLNamingManager.getObjectInstance(WLNamingManager.java:96)
at weblogic.jndi.internal.ServerNamingNode.resolveObject(ServerNamingNode.java:377)
at weblogic.jndi.internal.BasicNamingNode.resolveObject(BasicNamingNode.java:856)
at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:209)
at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:214)
at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:214)
at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:214)
at weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:254)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:388)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at siak.model.MessageManager.init(MessageManager.java:101)
at siak.ws.SiakWS.sendEvent(SiakWS.java:37)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker.invoke(WLSInstanceResolver.java:101)
at
weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker.invoke(WLSInstanceResolver.java:83)
at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:152)
at
com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:264)
at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:93)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:604)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:563)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:548)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:445)
at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:249)
at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:453)
at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:250)
at
com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:140)
at
weblogic.wsee.jaxws.HttpServletAdapter$AuthorizedInvoke.run(HttpServletAdapter.java:298)
at weblogic.wsee.jaxws.HttpServletAdapter.post(HttpServletAdapter.java:211)
at weblogic.wsee.jaxws.JAXWSServlet.doPost(JAXWSServlet.java:297)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at weblogic.wsee.jaxws.JAXWSServlet.service(JAXWSServlet.java:87)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at
weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java
:227)
at
weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:202)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletConte
xt.java:3588)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at
weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2200)
at
weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2106)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1428)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
java.lang.ClassNotFoundException: weblogic.jms.frontend.FEConnectionFactoryImpl_1032_WLStub
at
weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:296)
at
weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:269)
at
weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:55)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at
weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:177)
at
weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:36)
at
weblogic.utils.classloaders.FilteringClassLoader.findClass(FilteringClassLoader.java:100)
at
weblogic.wsee.util.JAXWSClassLoaderFactory$1.findClass(JAXWSClassLoaderFactory.java:45)
at
weblogic.utils.classloaders.FilteringClassLoader.loadClass(FilteringClassLoader.java:85)
at
weblogic.utils.classloaders.FilteringClassLoader.loadClass(FilteringClassLoader.java:80)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at
weblogic.utils.classloaders.GenericClassLoader.defineCodeGenClass(GenericClassLoader.java:516
at weblogic.utils.classfile.utils.CodeGenerator.generateClass(CodeGenerator.java:73)
at weblogic.rmi.internal.StubGenerator.hotCodeGenClass(StubGenerator.java:775)
at weblogic.rmi.internal.StubGenerator.getStubClass(StubGenerator.java:759)
at weblogic.rmi.internal.StubGenerator.generateStub(StubGenerator.java:786)
at weblogic.rmi.internal.StubGenerator.generateStub(StubGenerator.java:779)
at weblogic.rmi.extensions.StubFactory.getStub(StubFactory.java:74)
at weblogic.rmi.internal.StubInfo.resolveObject(StubInfo.java:213)
at weblogic.rmi.internal.StubInfo.readResolve(StubInfo.java:207)
at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeReadResolve(ObjectStreamClass.java:1061)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1762)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at
weblogic.jms.client.JMSConnectionFactory.readExternal(JMSConnectionFactory.java:382)
at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at
weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:197)
at weblogic.rjvm.MsgAbbrevInputStream.readObject(MsgAbbrevInputStream.java:564)
at
weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:193)
at weblogic.rmi.internal.ObjectIO.readObject(ObjectIO.java:62)
at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:240)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:348)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:259)
at weblogic.jndi.internal.ServerNamingNode_1031_WLStub.lookup(Unknown Source)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:400)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:388)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at
weblogic.deployment.jms.ForeignOpaqueReference.getReferent(ForeignOpaqueReference.java:194)
at weblogic.jndi.internal.WLNamingManager.getObjectInstance(WLNamingManager.java:96)
at weblogic.jndi.internal.ServerNamingNode.resolveObject(ServerNamingNode.java:377)
at weblogic.jndi.internal.BasicNamingNode.resolveObject(BasicNamingNode.java:856)
at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:209)
at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:214)
at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:214)
at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:214)
at weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:254)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:388)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at siak.model.MessageManager.init(MessageManager.java:101)
at siak.ws.SiakWS.sendEvent(SiakWS.java:37)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker.invoke(WLSInstanceResolver.java:101)
at
weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker.invoke(WLSInstanceResolver.java:83)
at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:152)
at
com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:264)
at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:93)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:604)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:563)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:548)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:445)
at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:249)
at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:453)
at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:250)
at
com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:140)
at
weblogic.wsee.jaxws.HttpServletAdapter$AuthorizedInvoke.run(HttpServletAdapter.java:298)
at weblogic.wsee.jaxws.HttpServletAdapter.post(HttpServletAdapter.java:211)
at weblogic.wsee.jaxws.JAXWSServlet.doPost(JAXWSServlet.java:297)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at weblogic.wsee.jaxws.JAXWSServlet.service(JAXWSServlet.java:87)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at
weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java
:227)
at
weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:202)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletConte
xt.java:3588)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at
weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2200)
at
weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2106)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1428)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
---------- end error ---------1 - A class-not-found is an odd exception to get on a server. Did you perhaps try to add client-only jars to the server classpath? The server classpath is already setup properly to act as a client.
2 - Its usually not a good practice to create contexts in client code (instead of simply using the Servlet context in your case), or to hard code URLs, dests, and CF references into the code. It works, but can be hard to maintain and inefficient.
3 - See:
[ Enhanced Support for Using WebLogic JMS with EJBs and Servlets | http://download.oracle.com/docs/cd/E15523_01/web.1111/e13727/j2ee.htm#g1329180 ]
and
[ Integrating Remote JMS Providers | http://download.oracle.com/docs/cd/E15523_01/web.1111/e13727/interop.htm#JMSPG553 ]
and the cross-domain advice in
[ Integration and Multi-Domain Best Practices |
http://download.oracle.com/docs/cd/E15523_01/web.1111/e13738/best_practice.htm#CACFBCHB ]
Hope this helps,
Tom -
Weblogic.admin script to alert server status
Hi,
Can anybody share a weblogic.admin utility script for alerting the server status in unix ?Below is the solaris shell script integrated with weblogic.admin utility....
If the server status is other than running it will sends a alert mail to you.
Sometime your server may be in shutdown mode and if you execute the below script, it says destination not reachable on specified port and then also it sends a alert mail.
Change it according to ur env and execute...
set -x
export CLASSPATH=”/wl_home/server/lib/weblogic.jar”
declare -a Port=( 8003 7072 8201 )
declare -a ServerState[]
declare -a ServerName[]
declare -a ObjectName[]
i=”0″
IP=Weblogic host address
while [ $i -lt 5 ]
do
ServerState[$i]=`java weblogic.Admin -url $IP:${Port[$i]} -username weblogic -password weblogic GET -pretty -type ServerRuntime -property State |grep -i State |awk ‘{print $2}’`
ObjectName[$i]=`java weblogic.Admin -url $IP:${Port[$i]} -username weblogic -password password GET -pretty -type JVMRuntime -property ObjectName |grep -i ObjectName |awk ‘{print $2}’`
if [ "${ServerState[$i]}” != “RUNNING” ] ;
then
mailx -s ” Weblogic Server Staus- $IP ” [email protected]<<EOF
Weblogic Managed server ${Port[$i]} is in SHUTDOWN state
EOF
fi
i=`expr $i + 1`
done
Thanks,
Kartheek
Troubleshooting in weblogic gives thrilling experience ....... -
Any kind of integration experience with Weblogic JMS and Oracle AQ?
Hi,
In my company I work with java developers who believe in some kind of "holly" database independence I don't understand and as a result my life as a database developer is hell on earth.. Yesterday we again started to discuss, this time where to log, they believe database is slow and prefer logging to filesystem, after some hours finally I could convince them for some operational and reporting needs to use the database and will do this in an asyncronous way whiich they won't get slow. After all I believe the reason for a database is data, this is the place where data lives, and with the correct desing and implementation logging to database would perform better.
I love Oracle features, and know that we paid a lot for this software, so today I started investigating this promised solution. And quickly I found AQ and JMS topics in the documentation :)
After this introduction here is my problem; my company use BEA Weblogic as application server and the java guys want AQ to automatically (but of course with some delay) take their JMS log requests into database tables. Does any one have similar application experience, or any kind of integration experience with Weblogic JMS and Oracle AQ?
Any comments, references, documentation, sample code, url will be most welcomed :)
Thank you very much!
Tonguc
[email protected]
References I found upto now;
Oracle® Streams Advanced Queuing Java API Reference 10g Release 2 (10.2) http://download-uk.oracle.com/docs/cd/B19306_01/server.102/b14291/toc.htm
(Packages; javax.jms & oracle.jms)
Oracle® Streams Advanced Queuing User's Guide and Reference 10g Release 2 (10.2) http://download-uk.oracle.com/docs/cd/B19306_01/server.102/b14257/toc.htm
Part IV
Using Oracle JMS and Oracle Streams AQPart V describes how to use Oracle JMS and Oracle Streams Advanced Queuing (AQ).
Chapter 11, "Introducing Oracle JMS"
Chapter 12, "Oracle JMS Basic Operations"
Chapter 13, "Oracle JMS Point-to-Point"
Chapter 14, "Oracle JMS Publish/Subscribe"
Chapter 15, "Oracle JMS Shared Interfaces"
Chapter 16, "Oracle JMS Types Examples"
A Sample Code from Otn
http://www.oracle.com/technology/sample_code/tech/java/web_services/jmsws/NewsQueueEJB.java.htmlI wouldn't go as far to say Oracle AQ is out-dated today. However, it is indeed a proprietary technology that did not found much main-stream adoption in the earlier years after its introduction. The advent of JMS made it somewhat more useful (or should I say intriguing, because more people are trying to tie it together with other J2EE technologies), but the Oracle's JMS wrapper classes in aqapi.jar were not feature complete for a long while, so using it outside Oracle's application server was painful, if not impossible. I do agree that the info at the dev2dev's JMS newsgroup or in this forum is highly fragmented, as neither Oracle nor BEA provides an official solution to integrate AQ with WebLogic, so people like us have to learn the technology through experimentation and in a piecemeal fashion.
3 years ago I was literally "playing around" - we had a polling mechanism set up to use triggers to write Oracle data changes into an event table, and had a Java-based daemon to scan that table and publish events as JMS messages to the WebLogic JMS server. This continues to work reliably till today, but I was looking for a solution that has few parts - I wanted to hook up my WebLogic MDB directly to AQ as a foreign JMS provider. Although I was able to get it to work (including XA), there were a few hoops I had to jump through, such as decompiling the Oracle AQjms classes to make them bind to the WebLogic JNDI tree.
One year after that Diptanshu Parui took what I did a giant step further - he extended the Oracle AQjms classes to allow them to be bound to the WebLogic JNDI tree naturally, and he figured out how to use WebLogic JMS messging bridge to re-send single-threaded AQ JMS messages to clustered JMS queues, which allow concurrent message assumption by multiple instances of MDB's. My impression is that he is using that setup in a production environment.
I am sure you are aware of it but I would like to make it clear - in order to use AQ as a foreign JMS provider to WebLogic-hosted MDB's, you don't need to update your database to Oracle 10g - Oracle 8i is good enough (although I recommend at least 9i Release 2). It is not the database engine, but rather the aqapi.jar JMS wrapper on top of AQ that matters. I do recommend that you use aqapi.jar from Oracle Application Server 10.0.3 or up for better XA support, among other things. Again, you don't have to replace WebLogic with Oracle AS - you only need a single jar file from it and put it in your WebLogic's classpath. However, I don't know what this means from a licensing point of view if you ever go to production - do you have to pay the full price of OracleAS or OC4J just to use the aqapi.jar?
In the coming days I will test the latest aqapi.jar to see how much progress Oracle has made in terms of making their J2EE products more spec-compliant :-).
Hope the above gives you a different perspective.
Eric -
WebLogic On Demand pricing??
Is there any area that has info on WebLogic hosting pricing?? I cannot locate that specific section in the info you sent and was hoping you could help.
I see the DB, but not the application server section??
Thank you!I’m assuming that you are looking for a WebLogic instance in the cloud (vs. WebLogic software licensing for hosters).
WebLogic is called the Java Cloud Service. Pricing is here: https://cloud.oracle.com/java?tabID=1385147650676
Thank you! -
Apache - Weblogic Connection Issue
Hi
we are facing with Apache weblogic communication issues.
The communication with Apache and Weblogic works for some time ( few hrs), But after some time we get the below error.
Let us take one pair. (Apachedevv1 ----> Weblogicdevp1)
Yesterday evening it was working fine. Today morning I see the below error.
http://Apachedevv1/
Failure of server APACHE bridge:
No backend server available for connection: timed out after 10 seconds or idempotent set to OFF.
Build date/time: Apr 20 2009 21:26:02
Change Number: 1211636
Then I run the below command on Weblogicdevp1
C:\> telnet Apachedevv1 80
This is success as the Apache is running on Apachedevv1:80
Now If I access the URL http://Apachedevv1/ it is success now and I get the weblogic home page.
Pls let us know if you had face this type of issue earlier.
Following are the lines added in httpd.conf of Apache.
<IfModule mod_weblogic.c>
WebLogicHost Weblogicdevp1
WebLogicPort 7001
</IfModule>
<Location />
SetHandler weblogic-handler
</Location>
I see the below errors in error.log of Apache.
[Wed Dec 29 09:10:59 2010] [error] [client xx.yy.49.39] ap_proxy: trying GET / at backend host 'xx.yy.86.54/7001; got exception 'CONNECTION_REFUSED [os error=0, line 1715 of ../nsapi/URL.cpp]: Error connecting to host xx.yy.86.54:7001'
[Wed Dec 29 09:11:03 2010] [error] [client xx.yy.49.39] ap_proxy: trying GET / at backend host 'xx.yy.86.54/7001; got exception 'CONNECTION_REFUSED [os error=0, line 1715 of ../nsapi/URL.cpp]: Error connecting to host xx.yy.86.54:7001'
[Wed Dec 29 09:11:07 2010] [error] [client xx.yy.49.39] ap_proxy: trying GET / at backend host 'xx.yy.86.54/7001; got exception 'CONNECTION_REFUSED [os error=0, line 1715 of ../nsapi/URL.cpp]: Error connecting to host xx.yy.86.54:7001'
ThanksThe error means , there is no application server running on that port configured in apache that is 7001 at the time of issue.
One more thing you are doing telnet on 80 , but you should do telnet on 7001 and not on apache port.
So if you face the issue again, please do telnet on weblogic host like " telnet weblogicdevp1 7001".
It's not problem with apache version and weblogic plugin version.
You can integrate weblogic with apache using mod_proxy module also, pls refer the below link for more info:
http://middlewareforum.com/weblogic/?p=292
Rgds,
Kartheek -
How do I get the weblogic port # programmatically?
I'm writing a class that uses JND to lookup a data source. I don't want to harcode the port number for the provider URL. The code will run in many different environments where the port numbers are different. A configuration file is not pratical. Since the provider URL is always the URL of the weblogic host I'd like to programmatically retrieve the port number that weblogic is listening and use that. Any ideas?
Hi,
Yes you can get the port number from your applications web.xml file. Define a new env-entry like one similiar below
<env-entry>
<env-entry-name>T3SERVER</env-entry-name>
<env-entry-value>t3://<<Servername>>:7501</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
and in your source code you can access the above property by obtaining initial context and doing a look up for the property name. A sample code would look like
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
strServerUrl = (String) envCtx.lookup("T3SERVER");
Hope this helps
-Jagan
-Jagan
Maybe you are looking for
-
I was told I could set a local network with the airport express, apple Tv, and my iPad to stream videos or pictures to a TV for a presentation. No internet connection is available at the location. Is that possible? Or do I need to access itunes homes
-
my phone wil not turn on after trying to update now all it de si tell me to plug into itunes which i have ready done and still nothing happens can you help
-
Unable create a target file with the same name
Hi, I have to pick an attachment from a web service and place the attachment in a folder, with the same name (Attached File Name). I tried this using SOAP to file scenario. Using SOAP, I'm able to get the attachment inside PI with the same name, but
-
Shouldn't I be getting a Kerberos ticket when logging in to my Lion Server?
I have a very small OS X network setup: one server, one client. OD, DNS, etc. all working well. One thing I noticed though is when I log into the server directly, I never have a Kerberos ticket and have to use kinit; when I log into the client, I a
-
[Solved?] No adapter status changes, or battery readings, in DEs
Update: by some magic, probably a relevant package upgrade, it began to work as it should as of my last login. I have a Thinkpad R60. Battery meters for XFCE, KDE, and Gnome show the battery at 100%, with the AC adapter plugged in, regardless of whet