Thursday 19 October 2017

GridLink Data Source

                                          


A GridLink data source lets you provide connectivity between WebLogic Server and an Oracle RAC database service, which is targeted to an Oracle RAC cluster. Database services are abstractions for workloads with common characteristics. A GridLink data source is independent of the number of nodes in a RAC cluster. You can use Oracle SCAN (Single Client Access Name) addresses to configure both the Transparent Network Substrate (TNS) and Oracle Notification Service (ONS) listeners. Using a SCAN address means that you don't need to change anything when you add or remove nodes from the RAC configuration.

Configuring the GridLink Data Source

The simplest way to create a GridLink data source connection pool is using the WebLogic administration console. The steps are very similar to creating a single instance data source, except that there are a few additional questions, especially pertaining to ONS.
Firstly go to create a JDBC data source and choose the GridLink option:
Now, like a regular data source, you are asked for details about its JNDI name and transaction support:
 Usually you will use the wizard to set up the JDBC URL for you:
Now enter details about the RAC database, service and user. Note my example here uses VIP names (which you should always use for 10.2 and above RAC databases), though you should be able to use a SCAN instead if you are using an 11.2 database.
  
Next you are presented a deep screen with all the database access details, including the innocuous looking test table, and a convenient button to test the database connection to all listeners in the cluster. Note you still don't have the option on this screen to change the pool size which puzzles me - in any non-trivial environment that is something you always want to do and yet you have to go back into the configuration afterwards to amend it.
  
Now this is where things get interesting! You'll see the "FAN enabled" tick-box and a place to enter the ONS details typically, though not necessarily, on the database servers. This is ticked by default and the UI makes sure you enter at least one ONS server (of course, as FAN is not going to work otherwise).
You'll also notice the wallet parameters which allow the ONS messages to be sent over SSL - usually a good practice in production.
 
The next page allows you to test connectivity with the ONS servers. This is handy as in production you will probably have requested firewall ports to be opened between the application server DMZ and the database zone and this allows you easily verify such a change is working. 
Finally, as for other types of data source, you choose which (usually) managed servers to assign it to, and then you're done.
Note I have had a warning message at this point but the data source was still activated - I'm not sure why. In this case it was happy though:
This is how my configuration looks in the JDBC file referenced from the domain's config.xml:


  racb-ds
 
    jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=westfield03)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=westfield04)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=appa)))
    oracle.jdbc.OracleDriver
   
     
        user
        hr
     

   

    {AES}...
 

 
    5
    15
    1
    SQL SELECT 1 FROM DUAL
    10
    LRU
 

 
    jdbc/racb-ds
    OnePhaseCommit
 

 
    true
    westfield03:6200,westfield04:6200
   
 
What is interesting to me about this is that it is almost identical to a regular/'generic' Oracle JDBC data source - the only difference (for the same transaction regime) is the additional properties (shown above in bold).

Monitoring

You can monitor a GridLink data source through the WebLogic administration console in the same way as multi data sources, e.g. numbers of connections to each RAC instance. There are new tabs for ONS though which allow you to check connectivity once the data source is running:
You can also view the data source status, like any other, on the Monitoring Dashboard:


Licensing

This section is no longer relevant - see later blog post 27/7/11 
As I mentioned earlier, at the time of writing, the functionality described above is not included in any of the WebLogic Server licences (Basic, Standard, Enterprise or Suite). You are only allowed to use this feature in test and production environments if you have one of:
  • an Exalogic Server: starting at $475,000 for a quarter rack (8 computer nodes) hardware, plus WebLogic licences etc, or,
  • the Exalogic Elastic Cloud software: this costs an additional $20,000 per Oracle Processor on top of WebLogic Suite.
Note even if you have an Exadata you are still not allowed to use GridLink data sources from a non-Exalogic WebLogic installation unless you have bought the Exalogic Elastic Cloud software.
As most people know, the Oracle licensing police don't take prisoners so if you're not on Exalogic and haven't paid for the extra Elastic Cloud licences you need to make sure your WebLogic administrators are fully aware that they mustn't use GridLink Data Sources. Note: I haven't seen of a way to switch off their availability in the console. Also, as you can see from the earlier configuration snippet, it is easy for Oracle to tell if you are using a GridLink data source, and I am sure their use will be included in auditing scripts.

No comments:

Post a Comment