Friday Feb 21, 2014
Wednesday Jan 15, 2014
By Frances Zhao on Jan 15, 2014
Oracle WebLogic Server on Oracle Database Appliance 2.7 offers a complete solution for building and deploying enterprise Java EE applications in a fully integrated system of software, servers, storage, and networking that delivers highly available database and WebLogic services. The world's most popular database, Oracle Database and the industry's best application server, WebLogic Server have been combined in this industry-unique appliance to provide high availability and the simplicity of One-Button deployment. And to top it all off, it reduces IT cost with a unique capacity-on-demand software licensing model.
Here you can download the new version of WebLogic on ODA 2.7 which offers WebLogic template for 11g (10.3.6), 12c (12.1.1 and 12.1.2).
Thursday Oct 17, 2013
Wednesday Oct 16, 2013
By Ruma Sanyal on Oct 16, 2013
It has been said that a chain is as strong as its weakest link. Well, this is also true for your application infrastructure. Not only are the various components that constitute your infrastructure, like database and application server critical, the integration between these things [whether coming out of the box from your vendor or done in-house] is paramount. Imagine your database being down and your application server not knowing about it and as a result your application waiting indefinitely for a database response – not a great situation if high availability is critical to your application. Or one of your database nodes is very busy, but your application server doesn’t have the intelligence to decipher that – it keeps pinging the busy node when it can in fact get a response from another idle node much faster. This is what Oracle WebLogic and Database integration provides: Intelligent integration out of the box. Tight integration between Oracle WebLogic and Database makes your infrastructure robust enough that not only does each of your infrastructure component provide you with improved RASP [reliability availability, scalability, and performance] but these components work together to offer improved performance & availability, better resource sharing, inherent scalability, ease of configuration and automated management for your entire infrastructure. Oracle WebLogic Server is the only application server with this degree of integration to Oracle Database.
With Oracle WebLogic Server 11g, we introduced Active GridLink for Real Application Clusters (RAC). In conjunction with Oracle Database, this powerful software technology simplifies management, increases availability, and ensures fast connection failover with runtime connection, load balancing and affinity capabilities. With the release of Oracle Database 12c this summer, even tighter integration between Oracle WebLogic Server 12c (12.1.2) and Oracle Database 12c has been achieved and this further optimizes the integration for a global cloud environment.
Read about these capabilities in detail in the Oracle WebLogic-Database Integration Whitepaper. Get in depth ‘how-to’ details from this YouTube video on the topic from our resident expert, Monica Roccelli.
Friday Sep 20, 2013
By Ruma Sanyal on Sep 20, 2013
Oracle WebLogic Server on Oracle Database Appliance offers a
complete solution for building and deploying enterprise Java EE applications in
a fully integrated system of software, servers, storage, and networking that
delivers highly available database and WebLogic services.
In this session, we will discuss how WebLogic is deployed on Database Appliance virtual environment and what the benefits of deploying to this platform are.
Session Id: CON8980
Time: Monday, Sept 23rd 2013, 12:15 p.m. - 1:15 p.m.
Location: Marriott Marquis, Room: Golden Gate A
Speakers: Simon Haslam (Veriton), Frances Zhao-Perez (Oracle)
Thursday Sep 05, 2013
By Steve Felts on Sep 05, 2013
I introduced WLS support for 12c database at https://blogs.oracle.com/WebLogicServer/entry/part_1_12c_database_and and the Application Continuity feature at https://blogs.oracle.com/WebLogicServer/entry/part_2_12c_database_and .
One of the biggest new features in the 12c database is officially called the Oracle Multitenant option. I'm going to point out what I think are some of the highlights here and eventually get down into some WLS sample code. See http://docs.oracle.com/cd/E16655_01/server.121/e17636/part_cdb.htm#BGBIDDFD for the Oracle Database Administration documentation for this feature. Technical folks, administrators and programmers, will call this feature "CDB/PDB" after the Container Database and Pluggable Databases that are used to implement it. As the names imply, you have a CDB to contain a collection of PDB's. If you are an administrator, you can appreciate the ability to create, manage, monitor, backup, patch, tune, etc. one entity instead of a bunch of them. As a programmer, its great that you can connect to your PDB and it looks and behaves just like a non-PDB. All that you need to know is the host, port, and service name just like the non-PDB. Of course, the service name needs to be unique in your environment so that you get to the right PDB in the right CDB.
As you might expect, there needs to be a container at the top to hold all of the PDB's - it's called the CDB$ROOT. There also needs to be some users in charge of the PDB's. These users are called "common users" and the names must begin with "C##". A common user is created in the root (it fails within a PDB) and exist in all PDB's. "Local users" are created within individual PDB's and behave like users in non-PDB's. When you are doing administration from tools like sqlplus or sqldeveloper, you connect to the database in the root and can switch to a PDB by using something like "alter session set container = PDB1" and then "alter session set container = CDB$ROOT" to get back to the root. There are new views to keep track of the CDB/PDB information - use "select pdb from cdb_services where pdb is not null" to see what PDB's exist. Some operations can only be done at the root level. For example, Database Resident Connection Pooling (DRCP), another new 12c feature, can only be started at the root. A PDB is managed pretty much like a non-PDB with startup and shutdown. Each PDB has an administrative database service that you can't configure (Enterprise Manager needs something consistent to manage the PDB) and you can create additional database services with your own choice of attributes. You can use the dba_services table within a PDB to see just the services for that PDB.
So how do you use this? The easy way to use this is for improving density and scalability on the data tier. You can move multiple standalone databases into a single container database with individual PDB's corresponding to each standalone database. On the WebLogic Server side, you can still have a data source defined for each of these PDB's, just as you have today.
Feeling more ambitious? You can share a single data source across multiple PDB's. To do that, you need to get a connection and switch to the PDB that you want to work on by executing the SQL statement "ALTER SESSION SET CONTAINER = pdbname". You might be wondering if any state is leaked from one PDB to another by doing this. Under the covers, the Oracle database server tells the Oracle driver that the PDB has been switched so driver connection state can be cleaned up. Then the driver tells the WLS data source that the PDB has been switched so that the WLS connection state can be cleaned up. Although general use of a PDB is transparent to WLS so that it can be used with versions starting with WLS release 10.3.6, PDB SET CONTAINER isn't supported until WLS release 12.1.2.
Switching PDB's is not a cheap operation so you should minimize doing this. To minimize the overhead, you really want to keep track of what PDB is associated with each connection. WLS data source has a mechanism for associating labels with connections that's ideal for this purpose. See http://docs.oracle.com/middleware/1212/wls/JDBCA/ds_labeling.htm#BCGFADIH for the connection labeling documentation.
Take a look at the sample code at this source code link (the .txt file is actually a .java file). It's written up as a servlet (don't get caught up in those details). It assumes that there is a 12c container database with PDB1 and PDB2 that has been configured as a generic data source with a JNDI name "ds0". When it first gets the data source, a labeling callback is created and registered (we only want to do this once). The program gets connections on each PDB. The first time it gets a connection on a PDB, it needs to do a switch; the next time, it can reuse the same connection. The labeling getConnection API is used; it takes a Properties object and the label name is "TENANT". Looking at the callback, if the label properties match then 0 is returned, otherwise a non-zero value is returned (some debugging information is printed so it's possible to watch the matching process). The key work is in the configure method, which is called when the tenant label doesn't match. In that case, the SET CONTAINER is done using the tenant label value and the label properties are reset.
Climbing back out of the code, the Oracle Multitenant option can be a big win on the database server side immediately with no change on the WLS side except maybe for the URL in the JDBC descriptor. Longer term, I believe applications will want higher density on the mid-tier and start to collapse the number of data sources. Along the same lines of improving density but not for multiple tenants, you can also move your SALES and CRM databases into PDB's within a container, and merge the two data sources into a single data source using the methods described above. It will be interesting to see how customers leverage the power of this new feature.
Tuesday Aug 13, 2013
By Frances Zhao on Aug 13, 2013
Would you like to learn a solution that saves time and money by simplifying deployment, maintenance, and support of high availability Oracle Database and WebLogic Server?
We are announcing exciting news of the availability of “Oracle WebLogic Server on Oracle Database Appliance 2.6”!
Oracle WebLogic Server on Oracle Database Appliance 2.6 offers a complete solution for building and deploying enterprise Java EE applications in a fully integrated system of software, servers, storage, and networking that delivers highly available database and WebLogic services. Built with world’s most popular database, Oracle Database and the industry’s best application server, Oracle WebLogic Server, and with its One-Button deployment capability, it delivers the combined high availability and simplicity. It reduces IT cost with the unique capacity-on-demand software licensing model.
For fully redundant system, storage, Oracle Database Appliance Manager Information, please check out the Oracle Database Appliance data sheet.
Oracle WebLogic Server on Oracle Database Appliance 2.6 provides:
- Highly available WebLogic Server with two, four or eight node cluster options that provide the foundation for customers to build and deploy enterprise Java EE applications with support for new features in WebLogic 11g (10.3.6) and 12c (12.1.1).
- Simple, reliable, affordable platform for deploying end-to-end solutions leveraging not only Oracle Database Real Application Clusters, but also WebLogic and the software load balancer for customers’ Java EE and Database investments.
The following new features are included in this new release:
- WebLogic on ODA 2.6 is fully certified with Oracle Database Appliance X3-2 hardware
- Oracle Traffic Director becomes optional during provisioning process
- User input the licensed core count, provisioning then it creates pools on the compute nodes and configure Traffic Director and WebLogic Server VMs to use the pools.
- Oracle Traffic Director 126.96.36.199 template for the load balancer tier
Please check out the white paper, howto, FAQ, etc for more information.
Friday Aug 09, 2013
Oracle and NEC Joint White Paper: WebLogic Server Active GridLink for Oracle RAC Testing Scenarios and Results
By Frances Zhao on Aug 09, 2013
Oracle and NEC have been jointly invested on verifying and testing the Active GridLink for RAC solution implemented within Oracle WebLogic Server which gives the rich functionality for Oracle Database Real Application Clusters integration.
The combination of Oracle WebLogic Server Data Source and Connection Pooling solutions and Oracle RAC provides a high-end mission-critical environment offering performance, high scalability and availability features. Load-balancing and Affinity capabilities offersignificant performance improvement for online transaction processing scenarios, as well as improving throughput and total response time. Failover solution gives end-to-end rapid failure detection supporting graceful shutdown for planned and unplanned Oracle RAC node outages.
In this paper, we start with a brief introduction to Oracle RAC and an overview of the Oracle RAC features supported in Oracle WebLogic Server 11g and 12c. We then focus on details of the effort that have been jointly done with Oracle and NEC with all the detailed testing scenarios and testing results, along with the analysis. The background and overview of NEC’s test of Active GridLink for RAC will be covered in details. The technical details about Runtime Connection Load Balancing, Web Session Affinity, Fast Connection Failover, and how to remove and add the additional RAC node with zero-downtime will be discussed with different use cases.
Download the white paper! And please share your comments
Monday Jul 29, 2013
New Whitepaper – Cloud Performance, Elasticity and Multitenancy with Oracle WebLogic Server 12c and Oracle Database 12c
By Ayalla Goldschmidt on Jul 29, 2013
One of the exciting focus areas of Oracle WebLogic 12c release 12.1.2 is the deep integration with the recently available Oracle Database 12c.
To hear live about these key integration features, please join our launch event on July 31st
One of the advantages of having the world’s most popular Database and the #1 Application Server under one roof, is the simple rule of 1+1=3, and what do I mean by that?
With our Engineering teams on the Database and Middleware side working hand in hand, Oracle WebLogic Server 11g introduced Active GridLink for Real Application Clusters (RAC). In conjunction with Oracle Database, this powerful software technology simplifies management, increases availability, and ensures fast connection failover, with runtime connection, load balancing and affinity capabilities. Deltek is one of the early adopters of these capabilities. Watch their video
With the release of WebLogic Server 12c (12.1.2), tight integration between Oracle WebLogic Server 12c (12.1.2) and Oracle Database 12c enhances these capabilities with improved availability, better resource sharing, inherent scalability, ease of configuration and automated management facilities in a global cloud environment.
It’s worth noting that Oracle WebLogic Server is the only application server with this degree of integration with Oracle Database 12c.
This white paper, authored by Monica Riccelli and Frances Zhao from the CAF Product Management team, explains how these unique database, clustering, and application server technologies work together to enable higher availability, scalability and performance for your business. It starts by introducing Oracle Active GridLink for RAC with attention to ease of configuration, manageability, and performance. Then describes the impact of Oracle WebLogic server on several leading features of Oracle Database12c such as Multitenant Databases (Pluggable Database), Database Resident Connection Pool, Application Continuity, and Global Data Services.
Please download the whitepaper and let us know your feedback!
You can read more on this topic in these blogs by Steve Felts:
Monday Jul 22, 2013
By Steve Felts on Jul 22, 2013
When an error occurs on a connection, it would be nice to be able to keep processing on another connection - that's what AC does. When on a single node database, getting another connection means that the database and network are still available, e.g., maybe just a network glitch. However, in the case of a Real Application Cluster (RAC), chances are good that even if you lost a connection on one instance you can get a connection on another instance for the same database. For this feature to work correctly, it's necessary to ensure that all of the work that you did on the connection before the error is replayed on the new connection - that's why AC is also called replay. To replay the operations, it's necessary to keep a list of the operations that have been done on the connection so they can be done again. Of course, when you replay the operations, data might have changed since the last time so it's necessary to keep track of the results to make sure that they match. So AC may fail if replaying the operations fail.
You can read the WLS documentation, an AC white paper, and the Database documentation to get the details. This article gives an overview of this feature (and a few tidbits that the documentation doesn't cover).
To use this feature, you need to use both the 12c driver and a 12c database. Note that if you use an 188.8.131.52 driver and/or database, it might appear to work but replay will only happen for read-only transactions (the 11g mode is not supported but we don't have a mechanism to prevent this).
You need to configure a database service to run with AC. To do that, you need to set the new 12c service attributes FAILOVER_TYPE=TRANSACTION and COMMIT_OUTCOME=true on the server side.
There's not much to turning on AC in WLS - you just use the replay driver "oracle.jdbc.replay.OracleDataSourceImpl" instead of "oracle.jdbc.OracleDriver" when configuring the data source. There's no programming in the application needed to use it. Internal to WLS, when you get a connection we call the API to start collecting the operations and when you close a connection we call the API to clear the operation history.
WLS introduced a labeling callback for applications that use the
connection labeling feature. If this callback is registered, it will be
called when a new connection is being initialized before replay. Even
if you aren't using labeling, you might still want to be called and
there is a new connection initialization callback that is for replay
(labeling callback trumps initialization callback if both exist).
It sounds easy and perfect - what's the catch? I've already mentioned that you need to get rid of references to concrete classes and use the new Oracle interfaces. For some applications that might be some significant work. I've mentioned that if replaying the operations fails or is inconsistent, AC fails. There are a few other operations that turn off AC - see the documentation for details. One of the big ones is that you can't use replay with XA transactions (at least for now). Selecting from V$instance or sys_context or other test traces for test instrumentation needs to be in callouts as the values change when replayed. If you use sysdate or systimestamp, you need to grant keep date time to your user.
We are also tracking two defects - AC doesn't work with Oracle proxy
authentication and it doesn't work with the new DRCP feature.
There's another more complex topic to consider (not currently in the current WLS documentation). By default, when a local transaction is completed on the connection, replay ends. You can keep working on the connection but failure from that point on will return an error to the application. This default is based on the service attribute SESSION_STATE_CONSISTENCY with a value of DYNAMIC. You can set the value to STATIC if your application does not modify non-transactional session state (NTSS) in the transaction. I'm not sure how many applications fall into this trap but the safe thing is to default to dynamic. I'll include such a code fragment below. A related common problem that people run into is forgetting to disable autocommit, which defaults to true, and the first (implicit) commit turns off replay if SESSION_STATE_CONSISTENCY is set to DYNAMIC.
It's important to know how to turn on debugging so that if a particular sequence doesn't replay, you can understand why. You simply need to run with the debug driver (ojdbc6_g.jar or ojdbc7_g.jar) and run with -Dweblogic.debug.DebugJDBCReplay (or turn this debug category on in the configuration).
AC won't replay everything and you still need to have some application logic to deal with the failures or return them to the end user. Also, there's some overhead in time and memory to keep the replay data. Still, it seems like a great feature for a lot of applications where you don't need to change anything but the driver name and you can avoid showing an error to the end user or simplify some recovery logic.
P.S. Confused about NTSS? So was I. Examples of non-transactional session state that can change at run-time are ALTER SESSION, PL/SQL global variables,
SYS_CONTEXT, and temporary table contents. Here's an example of a PL/SQL global variable. Imagine a package with the following body:
current_order number := null; current_line number; procedure new_order (customer_id number) is current_order := order_seq.nextval; insert into orders values (current_order, customer_id); current_line := 0; end new_order; procedure new_line (product_id number, count number) is current_line := current_line + 1; insert into order_lines values (current_order, current_line,product_id, count); end new_line; end order; and a psuedo-code sequence in WLS like this:
getConnection() exec "begin order.new_order(:my_customer_id); end;" commit; exec "begin order.new_line(:my_product_id, :my_count); end;" <DB server failure and failover> commit;
In this scenario, we won't replay the first transaction, because it's already
committed and we'd end up with two orders in the database. But if we don't
replay it, we lose the order_id, so the new_line call won't work. So we have to
disable replay after the commit. If you can guarantee that no such scenario exists, you can mark the service session-state as static.
Wednesday Jul 17, 2013
Tuesday Jul 02, 2013
By Steve Felts on Jul 02, 2013
The download of Oracle 12c database became available on June 25, 2013. There are some big new features in 12c database and WebLogic Server will take advantage of them. Immediately, we will support using 12c database and drivers with WLS 10.3.6 and 12.1.1. With WLS 12.1.2, available July 11, 2013 (join the Online Launch Event on July 31st), additional functionality is supported (those rows in the table below with all "No" values will get a "Yes). The following table maps the Oracle 12c Database features supported with various combinations of currently available WLS releases, 11g and 12c Drivers, and 11g and 12c Databases.
|Feature||WebLogic Server 10.3.6/12.1.1 with 11g drivers and 11gR2 DB||WebLogic Server 10.3.6/12.1.1 with 11g drivers and 12c DB||WebLogic Server 10.3.6/12.1.1 with 12c drivers and 11gR2 DB||WebLogic Server 10.3.6/12.1.1 with 12c drivers and 12c DB|
|JDBC replay||No||No||No||Yes (Active GridLink only in 10.3.6, add generic in 12.1.1)|
|Multi Tenant Database||No||Yes (except set container)||No||Yes (except set container)|
|Dynamic switching between Tenants||No||No||No||No|
|Database Resident Connection pooling (DRCP)||No||No||No||No|
|Oracle Notification Service (ONS) auto configuration||No||No||No||No|
|Global Database Services (GDS)||No||Yes (Active GridLink only)||No||Yes (Active GridLink only)|
|JDBC 4.1 (using ojdbc7.jar files & JDK 7)||No||No||Yes||Yes|
The My Oracle Support (MOS) document covering this is "WebLogic Server 12.1.1 and 10.3.6 Support for Oracle 12c Database [ID 1564509.1]" at the link https://support.oracle.com/epmos/faces/DocumentDisplay?id=1564509.1.
The following documents are also key references:
12c Oracle Database Developer Guide http://docs.oracle.com/cd/E16655_01/appdev.121/e17620/toc.htm
12c Oracle Database Administrator's Guide http://docs.oracle.com/cd/E16655_01/server.121/e17636/toc.htm .
I plan to write some related blog articles not to duplicate existing product documentation but to introduce the features, provide some examples, and tie together some information to make it easier to understand.
How do you get started with 12c? The easiest way is to point your data source at a 12c database. The only change on the WLS side is to update the URL in your data source (assuming that you are not just upgrading your database). You can continue to use the 184.108.40.206 driver jar files that shipped with WLS 10.3.6 or 12.1.1. You shouldn't see any changes in your application. You can take advantage of enhancements on the database side that don't affect the mid-tier. On the WLS side, you can take advantage of using Global Data Service or connecting to a tenant in a multi-tenant database transparently.
If you want to use the 12c client jar files, it's a bit of work because they aren't shipped with WLS and you can't just drop in ojdbc6.jar as in the old days. You need to use a matched set of jar files and they need to come before existing jar files in the CLASSPATH. The MOS article is written from the standpoint that you need to get the jar files directly - download almost 1G and install over 600M footprint to get 15 jar files. Assuming that you have the database installed and you can get access to the installation (or ask the DBA), you need to copy the 15 jar files to each machine with a WLS installation and get them in your CLASSPATH. You can play with setting the PRE_CLASSPATH but the more practical approach may be to just update WL_HOME/common/bin/commEnv.sh directly. There's a change in the transaction completion behavior (read the MOS) so if you think you might run into that, you will want to set -Doracle.jdbc.autoCommitSpecCompliant=false. Also if you are running with Active GridLink, you must set -Doracle.ucp.PreWLS1212Compatible=true (how's that for telling you that this is fixed in WLS 12.1.2).
Once you get the configuration out of the way, you can start using the new ojdbc7.jar in place of the ojdbc6.jar to get the new JDBC 4.1 API's. You can also start using Application Continuity. This feature is also known as JDBC Replay because when a connection fails you get a new one with all JDBC operations up to the failure point automatically replayed. As you might expect, there are some limitations but it's an interesting feature.
Obviously I'm going to focus on the 12c database features that we can leverage in WLS data source. You will need to read other sources or the product documentation to get all of the new features.
Tuesday May 14, 2013
By Frances Zhao on May 14, 2013
How to configure a WebLogic cluster on Oracle Database Appliance?
It's easy with the support of Appliance Manager, WebLogic configuration for Oracle Database Appliance!
Follow the wizard driven process, you can deploy and set up a WebLogic cluster just in hours!
- Pick the WebLogic version. In our 2.5 release, you can choose either WebLogic 12c (12.1.1) or 11g (10.3.6).
- Choose the size of cluster, you can set up a 2, 4 or 8 node cluster.
- Input your networking information.
- Input load balancer networking information.
- Input the data source configuration information as optional.
- Done. Ready to deploy!
It's simple, easy and straightforward.
Wednesday Apr 24, 2013
Friday Apr 19, 2013
By Frances Zhao on Apr 19, 2013
Since we have announced the availability of WebLogic on Oracle Database Appliance last month; we have got lots of interests and good questions. In this series of topics, we will cover some very popular discussions and questions. Today, let's look at some details on sizing and storage for WebLogic on ODA.
On Oracle Database Appliance, each VM hosts its own Oracle Enterprise Linux operating system in addition to any installed applications, such as WebLogic Server.
Table below shows the resources that are provided for each VM for WebLogic Server and Oracle Traffic Director:
OTD Administration Server
OTD Server Instances
WebLogic Administration Server
WebLogic Managed Server
On the storage side, table below gives all the details on the latest X3-2 version of Database Appliance:
High Performance Drives
18 TB Raw
Expansion Storage Shelf
High Performance: 18TB Raw, SSD: 800 GB
For the user domains which WebLogic Server and Oracle Traffic Director deploy to, the local storage of
250GB per node is available.
- Part III: WebLogic-Database Integration Podcast Series
- Part II: WebLogic-Database Integration Podcast Series
- Part I: WebLogic-Database Integration Podcast Series
- WebLogic Suite: Foundation Infrastructure for Oracle Internet Application Server (iAS) Customers -- Part II
- WebLogic Suite: Foundation Infrastructure for Oracle Internet Application Server (iAS) Customers
- WebLogic, Database Integration Webcast: Q&A Recording
- Future-Proof Your Applications
- Weblogic and Database 12c Integration for Developers: Webcast
- Announcing WebLogic on Oracle Database Appliance 2.7
- NCH's Industrial Chemicals Business With Scalable WebLogic