Weblogic Apache Plugin and database connections - apache

I am new to the Apache plugin. How can it be configured to detect if my Weblogic server has a valid connection to the datasource and to take it out of the round-robin loop if it doesn't?
If the plugin does not do this is there another way?
Thanks,
Bill

You cant do this using the web server plugin - the plugin is only able to connect to the WLS server and not the database/datasource.
the mechanism you're looking for is to set Test Connection and Retries to the database and it will suspend and retest to an unhealthy connection based on the way its configured.
See more on the Oracle docs.

Related

WebLogic (with SSL) as proxy for any WSGI web server

I researched about any plugin/module WSGI for Oracle WebLogic 12c that allows me run a python flask app, with no success.
The reason for why i need to run from WebLogic 12c, it's because i need to use the SSL certfied living there.
Researching, i found many web server (Apache, Gunicorn, etc) can act as proxy of WebLogic, here is an example, where Nginx receive all the requests with SSL and then passed them to WebLogic:
https://medium.com/#Dracontis/nginx-as-proxy-for-weblogic-with-ssl-c7e1076e2c0c
So, i wonder if there is a manner to invert this order? I mean, WebLogic receive all the requests (safely because of SSL certified) and then pass them to any web server with the WSGI standard.
Thanks in advance.
I didn't find a sort of solution that accomplished the topic above. However, in case someone needs implements this topology here is what i did:
I've installed an Oracle HTTP Server (OHS) and creating a wallet for the SSL certified, in certain way in which the OHS can receive the requests secure, then inside the OHS with specific setting achieve forward the request to the Apache running with the module WSGI.

Topology of Worklight Server on a Websphere Liberty Profile

I'm trying to understand the topology of Worklight. Specifically how does a WL Server handles its applications.
If I understood correctly, a WL Server has a <httpEndpoint>. This means that a set of WL Applications will have their context root on that port. Right?
This means, If I want to put /worklightconsole on a custom port, I'll need a network installation instead of a standalone so that I can have a cluster of WL instances and each one will bind to a different port.
Did I understood this matter correctly? Then I can use a reverse proxy to needle my requests to the correct instance of WL Server.
Right?
Thanks in advance!
http://www-01.ibm.com/support/knowledgecenter/SSZH4A_6.1.0/com.ibm.worklight.installconfig.doc/admin/c_typical_topology_of_an_ibm_wor.html
Yes the httpEndpoint entry defines the http and https port and the WL applications have their context root on these ports.
If you have different Liberty Servers with the same WL runtime, be sure that the you share the same database and same schema.
After that you can use a Web Proxy to load balance the requests between the different Liberty servers.

weblogic AS: application deployed on a cluster with two managed servers

I'm on Weblogic AS 10.3.5, I have two managed servers pointed to a cluster, so I have two url, one for the first managed server, the other one for the second.
I will deploy my application on the cluster, so will I reach it on both the url? will the application deployed and running on both the servers?
How does it work? Can you give me some references, please?
Is it clear?
Thanks a lot!
First, you shouldn't be using WebLogic 10.3.5 anymore since it has reached the last stage of support called Sustained Support. Consider to upgrade at least to WebLogic 10.3.6.
Related to your question, I believe you are talking about a Web Application and how to access it. First you need to read about Load Balancing in a Cluster. For the web part (JSP and Servlets) basically you have to options: setup a Web Server (like Apache HTTP) to make use of the WebLogic Plug-in, that will then be connected to the WebLogic cluster. The other easier option is to simply use an LBR (load balance router hardware).
These are the "software" solutions you have for Load Balancing your web application in a clustered WebLogic:
WebLogic Server supports the following Web servers and associated
proxy plug-ins:
WebLogic Server with the HttpClusterServlet
Netscape Enterprise Server with the Netscape (proxy) plug-in
Apache with the Apache Server (proxy) plug-in
Microsoft Internet Information Server with the Microsoft-IIS (proxy) plug-in
You can read more about this options at the Configure Proxy Plug-ins documentation page for WebLogic 10.3.6.

5.0.6 - Changing Adapter domain and port configuration after deploy through configuration - for QA and Testing team in development process

I have seen some questions about dynamic adapter configuration at run-time
how to pass domain,port number,username and password from user input to worklight http adapter
With a Worklight Adapter can I change the domain and port for a procedure at runtime?
but my question is about adapter configuration after deploy on WL server 5.0.6 from external - not at runtime from code.
Our scenario is that in our enterprise development and testing process requires the QA and Testing team to change the destination host and port for the adapters from mockup-backend to testing-backend to production-backend regularly during testing.
of course, this should happen through configuration and not re-compile and re-deploy.
Is there a way to change the domain and port values for adapters that are deployed on the WL server 5.0.6?
Can this be changed in the WL database tables?
Can this be changed in the WL server filesystem somewhere?
since we did not find any solution to that yet, the developer team is already thinking about using the Adapter only as dumb facade and implement all connection to the backend-services in Adapter-side Java using the Java URL and Connection classes.
Then it would be easy to read a configuration file from the file system in Java to change the backend destination URL and ports in this file.
It would even be easy to read the URL and port from a property in the worklight.properties file in JavaScript and pass it to Java to connect.
I would like to avoid having developing all backend connection code in Java. I would rather see the project use the actual Adapter connectivity features, but I am also not sure how to convince the team since it is quite easy with just 4 lines of code in Java. The advantage of using the Adapter connectivity that can not be configured is hard to see over a own Java implementation in Adapter-Java code.
Thank you.
Is there a way to change the domain and port values for adapters that are deployed on the WL server 5.0.6? Can this be changed in the WL database tables? Can this be changed in the WL server filesystem somewhere?
In Worklight 5.0.6, as written in the questions you've linked to in the question, an adapter's connectivity settings cannot be altered. They are stored in the packaged adapter and cannot be read from anywhere else during runtime nor after deployment.

How can I connect to Weblogic remotely using JConsole?

Which URL, port and weblogic server side settings do I need to use?
It depends if you want to connect to a WebLogic MBean server (Domain, Runtime, Edit) or platform (JDK) MBean server (See MBean Servers).
Connecting with JConsole to a WebLogic MBean server is usually a real pain:
Enable Anonymous Admin Lookup if version is lower than 10.3 (See WebLogic anonymous user permissioning)
Enable IIOP Protocol for Admin Server and Application Servers (See Enable and configure IIOP)
Launch jconsole with a custom commandline (See Managing WebLogic servers with JConsole)
Connecting to platform MBean server is like any other JVM (See How to activate JMX on my JVM for access with jconsole), but you would not see any WebLogic MBeans unless you configure WebLogic to use it (See Registering MBeans in the JVM Platform MBean Server).
Try adding this to your server start-up parameters. Change the port (7011) to whatever you prefer. You should be able to use JConsole then by specifying the remote server "{host}:{port}"
Note: the {host} does not include a "http://" prefix.
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=7011
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
Also, you probably don't want to disable authentication like this in a production environment, but the parameters above should help you with testing. When using this, you won't need to specify a username/password in JConsole.
You'll have to enable the remote server to listen on a specific port for JMX -http://download.oracle.com/javase/1.5.0/docs/guide/management/agent.html#remote
URL would be your server's listen address. You also have the option to require authentication to limit the usage of the debug port.