Audit Activities of WebLogic Server in Enterprise Manager 13c

0 Comments
In Oracle Enterprise Manager 13c were introduced a nice new feature for auditing activities of Oracle WebLogic Server events.

Before you can audit your activities like Domain login, Domain logout and Domain updates, you have to enable them via a simple emcli command.

Logon to your server which is hosting your Oracle Management Server (OMS) and perform following steps:

[oracle@em13c]# emcli login -username=sysman
Enter Password:
Login successful
[oracle@em13c]# emcli update_audit_settings \
-operations_to_enable="WEBLOGIC_DOMAIN_UPDATE_INVOKE;WEBLOGIC_DOMAIN_LOGIN;WEBLOGIC_DOMAIN_LOGOUT"
Successfully updated the audit settings.

From now on all Domain login, logout and updates events will be monitored and can be inspected within Oracle Enterprise Manager 13c.

The Audit Data can be found under "Setup / Security / Audit Data"



Within the Audit Data you will find 3 main sections:

  • Search Section were you can define your searches
  • A list view of Audit Records according to your defined search
  • Audit Record Details for your marked Audit Record of the list view


For Audit Records concerning Oracle WebLogic Domain activities, you should redefine your search under the search field "Operation", so that you select only the 3 available Operations related to WebLogic Domain and afterwards click the button "Search"



Now you will see in your List View in the center just the Audit Records related to Oracle WebLogic Domain targets. When you select a Audit Record in the List View you will see below the Audit Record Details for the selected Audit Record. Here you can see different tabs:
  • General: Timestamp, Administrator, Operation Type, Status and so on
  • Client Information: Contains different client informations like browser, client IP and Session ID
  • OMS Information: Hostname and IP of the Oracle Management Server (OMS)
  • Operation Specific Information: Contains detailed informations about the underlying activity.



The Audit Record Details tab "Operation Specific Information" is quite interesting, as we can see here very detailed informations about the performed activity.
You will find here informations about the Object Name, Target Name, Target Type, Operations Type, Message, which contains in case of an update operations the MBean, Processing Time of the Operations and possible Input Parameters. In the "Input Parameters" you will find your modified values for the underlying operation, so you can track down what has been changed exactly. Really nice :-) but one thing you should consider, the Input Parameters will be displayed in plain text, even if you are changing the password within a Data Source, you can see for the corresponding Audit Record Detail in the field Input Parameters the value of your password :-( not really cool ....



But nevertheless, the Audit Data Feature for Oracle WebLogic Server is really cool :-)

ALTER USER RENAME - Part 3

0 Comments
This is part 3 of the ALTER USER RENAME series


Inspired by a Twitter Comment from Franck Pachot and as I love to test really funny and strange things with Oracle Products.



I was trying to rename the SYS user and the SYSTEM user.

SQL> alter session set "_enable_rename_user"=true;
SQL> alter system enable restricted session;
SQL> alter user sys rename to mysys identified by "Oracle12c";
alter user sys rename to mysys identified by "Oracle12c"
           *
ERROR at line 1:
ORA-42289: may not rename specified user

The same applies for the SYSTEM user


ALTER USER RENAME - Part 2

0 Comments
It seems that my first blog post today "ALTER USER RENAME - A half official option" got some great attentions :-)

How did I come to the ALTER USER RENAME command? Just a lucky punch due to my customer. My customer were trying to rename an user in an Oracle Database with several objects (tables, view, functions, types and so) by simply updating the sys.user$ table :-)
The result were better than expected, just synonyms had to be recreated, but a function which is referencing a type caused some problems thats leads to an undocumented ORA-00600.

So I was starting to do some searches in My Oracle Support and finally came across the My Oracle Support Note 10217802.8



Its simply a Bug summing up for a discovered ORA-4030 errors message for the command "ALTER USER .. RENAME". Quick check in the official SQL Language Reference Guides, shows clearly there is no "ALTER USER RENAME" option. So whats going on here? Next search in My Oracle Support with simply the search string "10217802" brings up some Patches for the Bug


Patches for a non-existing feature sounds really interesting :-) when you check out the patches, you will see that the patches were created 10th November 2010 !!!!

So since more than 5 years the really cool feature is existing, but nowhere really described.

What I discover so far:


  • Users which are holding TABLES, VIEWS, FUNCTIONS, PROCEDURES can be renamed without any problems
  • Even GRANTS will be transferred correctly :-)
  • Problems I discovered so far with TYPES and SYNONYMS
    • SYNONYM owner will be switched correctly, but the table_owner stays untouched, so the synonym will point to an invalid reference. Not nice, but its ok

Whats underneath the ALTER USER RENAME command?

The easiest way is just set trace event 10046 :-)

alter session set tracefile_identifier='RENAME';
alter session set events '10046 trace name context forever,level 12';
alter session set "_enable_rename_user"=true;
alter system enable restricted session;
alter user DEMO rename to DEMO_NEW identified by "demo";
alter session set events '10046 trace name context off';
alter system disable restricted session;

In generell the ALTER USER RENAME is doing some modifications (update, delete and insert) against the sys.user$ table and other sys tables, here some examples from the 10046 tracefile:

update user$ set ext_username=:1
where ext_username = (select name from user$ where user#=:2)

delete from user$
where user#=:1

insert into user$(user#,name,password,ctime,ptime,datats#,tempts#,type#,
  defrole,resource$,ltime,exptime,astatus,lcount,defschclass,spare1,spare4,
  ext_username,spare2)
values
 (:1,:2,:3,SYSDATE,DECODE(to_char(:4, 'YYYY-MM-DD'), '0000-00-00',
  to_date(NULL), :4),:5,:6,:7,:8,:9,DECODE(to_char(:10, 'YYYY-MM-DD'),
  '0000-00-00', to_date(NULL), :10),DECODE(to_char(:11, 'YYYY-MM-DD'),
  '0000-00-00', to_date(NULL), :11),:12,:13,:14,:15,:16,:17,:18)

update user$ set user#=:1,password=:3,datats#=:4,tempts#=:5,type#=:6,defrole=
  :7,resource$=:8,ptime=DECODE(to_char(:9, 'YYYY-MM-DD'), '0000-00-00',
  to_date(NULL), :9),defschclass=:10, spare1=:11, spare4=:12
where name=:2

update user$ set exptime=DECODE(to_char(:2, 'YYYY-MM-DD'), '0000-00-00',
  to_date(NULL), :2),ltime=DECODE(to_char(:3, 'YYYY-MM-DD'), '0000-00-00',
  to_date(NULL), :3),astatus = :4, lcount = :5
where user#=:1

And what Oracle says?
Official reply from My Oracle Support:

The fact that a certain fix for an undocumented feature is included in a bundle patch such a PSU does not make it official at all. The only official and supported features are those present in the documentation.

Lets see, if some day this cool feature will become official  ... :-)

ALTER USER RENAME series:




ALTER USER RENAME - A half official option

0 Comments
Many times DBA's have to rename / copy complete users/schemas from the current name to a new name within one database. Since several years DBA's are asking for a simple method inside Oracle to execute something like "ALTER USER RENAME".

Common approaches to rename users/schemas are:
  • IMPDP with REMAP_SCHEMA
  • update of sys.user$
For the option "update of sys.user$", which is in my opinion a really bad choice, see Tom Kyte's comment 



For the option "IMPD with REMAP_SCHEMA", its official but can be time consuming.

It would be really cool to have a simple SQL Statement like "ALTER USER RENAME". In the official Oracle Documentation "Database SQL Language Reference" under ALTER USER is nothing documented for a RENAME option, but it exists !!!! :-)

How does it work?

Let's say we have a user called DEMO and we want to rename this user to DEMO_NEW. The user DEMO got tables, views and functions.

# Connect as SYS to your database
conn / as sysdba
# At first we set an undocumented parameter to enable the RENAME option
alter session set "_enable_rename_user"=true;
# Bring the Database to restricted session, in order to avoid Memory Problems for huge schema
alter system enable restricted session;
# Now lets RENAME the user DEMO to DEMO_NEW
# and provide a password for the new user DEMO_NEW
alter user DEMO rename to DEMO_NEW identified by "demo";
# Disable restricted session
alter system disable restricted session;

That's it :-)

The ALTER USER RENAME works from Oracle 11.2.0.2.0 going, my above test case was done with Oracle 12.1.0.2.0.

So why is this option with ALTER USER RENAME "half official"?

  • It's not documented in the official Oracle Documentation
  • It requires an undocumented parameter
  • But there are Patches available for the ALTER USER RENAME within My Oracle Support
    • For Example: Patch 10217802 which fixes an ORA-4030 for ALTER USER RENAME

The question now is why Oracle doesn't make this cool feature official?

So far, I found one limitation, if the user holds a type which is referenced within a table you will get following error for the ALTER USER RENAME:

ORA-42287: cannot rename user on whose type a table depends

If anybody finds more limitation while testing this cool feature, just drop me message here.

But remember, DON'T DO THIS IN PRODUCTION !! Its not an official option, there might be some serious kickback effects.


ALTER USER RENAME series:



CPUJan2016 - WebLogic Server 12.1.2.0.8 OPatch apply error

2 Comments
Since 19th January 2016 the Critical Patch Update for January 2016 is out.
In case you are trying to apply the CPUJan2016 against an Oracle WebLogic Server 12.1.2 you may run into following error:

Verifying the update...
[ Error during Update inventory for apply Phase]. Detail: 
There are 1 copy files under ORACLE_HOME that are not patched.
Files check failed: Some files under ORACLE_HOME are not patched.
Please see logfile for details.
[ Error during Update inventory for apply Phase]. Detail: OPatch failed:
ApplySession failed in system modification phase... 
Verification of patch failed: Files are not updated completely.

The problem occurs under following conditions:

  • OPatch 13.1.0.0.0
  • JDK 1.7
  • CPU Patch Number: 21984577
The solution is relatively simple :-) use instead of opatch apply the command opatch napply.

Happy Patching ...


Enterprise Manager 13c Presentations on Oracle Technology Network

0 Comments
As everybody already know that the latest version of Oracle Enterprise Manager 13c (13.1.0.0) has been released yesterday (see also my post from 18th December 2015), Oracle has uploaded several interesting presentations around the new Oracle Enterprise Manager 13c.

The presentations are covering various topics around the Oracle Enterprise Manager 13c (some presentations are also still covering Enterprise Manager 12c):

  • General
  • Cloud Management
  • Middleware Management
  • Database Management
  • Installation & Upgrade | Best Practices
  • and so on ...


The presentations can be found under: http://www.oracle.com/technetwork/oem/downloads/em-oow2015-2789798.html





Oracle Enterprise Manager 13c available

0 Comments
Seems its early Christmas :-) the new release of the Oracle Enterprise Manager 13c (13.1.0.0) is available for download in the Oracle Technology Network http://www.oracle.com/technetwork/oem/enterprise-manager/downloads/index.html



The new Oracle Enterprise Manager 13c is available for:


  • Linux x86-64
  • Windows x86-64
  • Solaris (SPARC)
  • Solaris (x86-64)
  • IBM AIX on POWER Systems
  • HP-UX Itanium


Happy download :-)

Oracle Enterprise Manager 13c - First Video on Oracle Learning Library YouTube Channel

0 Comments
I just discovered that since today (18th December 2015) is a first Oracle Learning Library video for the Oracle Enterprise Manager 13c (!!!!!) available.




Enjoy watching it :-)

WebLogic 12.2.1 - Redeployment of versioned applications via RESTful Management Services

0 Comments
With the latest release of Oracle WebLogic Server 12.2.1 came quite a lot of enhancements for the RESTful Management Services. The enhancements are really impressive, you are able to monitor (GET) or to modify (POST) your WebLogic environment in detail with a simple URL call either via Browser or via Command Line Tools like cURL. The response time for such REST calls are really impressive compared to the classical way with WLST scripts :-)

For more details about RESTful Management Services you may have a look into the Official Oracle Documentation: http://docs.oracle.com/middleware/1221/wls/WLRUR/index.html

Within this post, I will show how to deploy a versioned application via a simple REST call over cURL. As base for this example you should have a look on the Oracle Learning Library Example "Oracle WebLogic Server 12c (12.2.1): Configure and Using Production Redeployment". Within this Oracle Learning Library Example you can see the classical way of deploying a versioned application. The below used versioned application is coming from this Oracle Learning Library Example, the versioned applications you can download from the before mentioned URL.

Since Oracle WebLogic Server 12.2.1 you will have a lot more possibilities within the RESTful Management Services, for example: creating Managed Servers, creating Data Sources, modifying WebLogic Server settings, deploying applications and so on.

As preparation I have downloaded the versioned.zip file from the Oracle Learning Library example, transferred it to my server on which my WebLogic Server 12.2.1 is running.

First step unzip the versioned.zip file to any directory of your server, make sure that your Oracle WebLogic Server is up and running and specially that the Managed Server to which you want to deploy the versioned application is up and running.

Second step, I simply created two shell scripts to deploy my 2 versioned applications.

Replace within the below provided script for the first deployment just the password for the weblogic user, in my case Oracle12. Align the provided deploymentPath to your path, align the provided Managed Server Name under targets and align the hostname and AdminServer port provided in the last line of the below script:

Script name: deploy_app_v1.sh

#!/bin/ksh
# Script for deployment of version 1
curl -v --user weblogic:Oracle12c \
     -H X-Requested-By:MyClient \
     -H Accept:application/json \
     -H Content-Type:application/json \
     -d "{
          name: 'simple',
          deploymentPath: '/home/oracle/versioned_app/deployversion1/simple.war',
          targets: [ManagedServer1]
         }" \
     -X POST http://wls1221:7001/management/wls/latest/deployments/application

Replace within the below provided script for the second deployment just the password for the weblogic user, in my case Oracle12. Align the provided deploymentPath to your path, align the provided Managed Server Name under targets and align the hostname and AdminServer port provided in the last line of the below script:

Script name: deploy_app_v2.sh

#!/bin/ksh
# Script for deployment of version 2
curl -v --user weblogic:Oracle12c \
     -H X-Requested-By:MyClient \
     -H Accept:application/json \
     -H Content-Type:application/json \
     -d "{
          name: 'simple',
          deploymentPath: '/home/oracle/versioned_app/deployversion2/simple.war',
          targets: [ManagedServer1]
         }" \
     -X POST http://wls1221:7001/management/wls/latest/deployments/application


Now lets start with the first deployment:
[oracle@wls1221]# ./deploy_app_v1.sh

* About to connect() to wls1221 port 7001 (#0)
*   Trying 192.168.56.10...
* Connected to wls1221 (192.168.56.10) port 7001 (#0)
* Server auth using Basic with user 'weblogic'
> POST /management/wls/latest/deployments/application HTTP/1.1
> Authorization: Basic d2VibG9naWM6T3JhY2xlMTJj
> User-Agent: curl/7.29.0
> Host: wls1221:7001
> X-Requested-By:MyClient
> Accept:application/json
> Content-Type:application/json
> Content-Length: 156
> 
* upload completely sent off: 156 out of 156 bytes
< HTTP/1.1 201 Created
< Date: Fri, 11 Dec 2015 10:37:07 GMT
< Location: http://wls1221:7001/management/wls/latest/deployments/application/id/simple
< Content-Length: 794
< Content-Type: application/json
< X-ORACLE-DMS-ECID: 0681dbbd-5c8c-47c3-bf72-2c795675d5b4-0000001a
< X-ORACLE-DMS-RID: 0
< Set-Cookie: JSESSIONID=XMaQnZ6WaiRtdYIelakH-cFG0PHNKdWdp84MMS5ryxHr1xWLUGc6!-693988513; path=/; HttpOnly
< 
{
    "item": {
        "targets": [{
            "status": "completed",
            "errors": [],
            "name": "ManagedServer1",
            "type": "server"
        }],
        "beginTime": 1449830228082,
        "endTime": 1449830234153,
        "status": "completed",
        "deploymentName": "simple",
        "description": "[Deployer:149026]deploy application simple [Version=v1] on ManagedServer1.",
        "operation": "deploy",
        "name": "ADTR-0",
        "id": "0",
        "type": "deployment"
    },
    "messages": [{
        "message": "Deployed the application 'simple'.",
        "severity": "SUCCESS"
    }],
    "links": [{
        "rel": "job",
        "uri": "http:\/\/wls1221:7001\/management\/wls\/latest\/jobs\/deployment\/id\/0"
    }]
* Connection #0 to host wls1221 left intact


Now lets open a browser and access the newly deployed application, in my case http://wls1221:7003/simple (as my target Managed Server is listening on port 7003). You should see a simple website in a blue color scheme. Type in your First Name, Last Name and Favorite Color and press "OK"


Keep the browser open and now we perform the Production Redeployment of the version 2 of our application via RESTful Management Services.


[oracle@wls1221]# ./deploy_app_v2.sh

* About to connect() to wls1221 port 7001 (#0)
*   Trying 192.168.56.10...
* Connected to wls1221 (192.168.56.10) port 7001 (#0)
* Server auth using Basic with user 'weblogic'
> POST /management/wls/latest/deployments/application HTTP/1.1
> Authorization: Basic d2VibG9naWM6T3JhY2xlMTJj
> User-Agent: curl/7.29.0
> Host: wls1221:7001
> X-Requested-By:MyClient
> Accept:application/json
> Content-Type:application/json
> Content-Length: 156
> 
* upload completely sent off: 156 out of 156 bytes
< HTTP/1.1 201 Created
< Date: Fri, 11 Dec 2015 10:37:56 GMT
< Location: http://wls1221:7001/management/wls/latest/deployments/application/id/simple
< Content-Length: 794
< Content-Type: application/json
< X-ORACLE-DMS-ECID: 0681dbbd-5c8c-47c3-bf72-2c795675d5b4-0000001c
< X-ORACLE-DMS-RID: 0
< Set-Cookie: JSESSIONID=2fCQnl74wd1Ps9WDNmfv7eTjnh3yyGnNV6eyYOnbXJHMPO1IQmDn!-693988513; path=/; HttpOnly
< 
{
    "item": {
        "targets": [{
            "status": "completed",
            "errors": [],
            "name": "ManagedServer1",
            "type": "server"
        }],
        "beginTime": 1449830276956,
        "endTime": 1449830282690,
        "status": "completed",
        "deploymentName": "simple",
        "description": "[Deployer:149026]deploy application simple [Version=v2] on ManagedServer1.",
        "operation": "deploy",
        "name": "ADTR-1",
        "id": "1",
        "type": "deployment"
    },
    "messages": [{
        "message": "Deployed the application 'simple'.",
        "severity": "SUCCESS"
    }],
    "links": [{
        "rel": "job",
        "uri": "http:\/\/wls1221:7001\/management\/wls\/latest\/jobs\/deployment\/id\/1"
    }]
* Connection #0 to host wls1221 left intact


Now open a second browser and access once again the URL of the application http://wls1221:7003/simple and now you should see a website with a green color scheme, which is the second version of the application. Type in once again your data and click "OK"



If you now go back to your first browser (with the blue color scheme), click now the link "Start over ..." and you should be able still to use the version 1 of the application as your HTTP Session object is still valid.


When we look now into the Oracle WebLogic Server Console under "Deployments" you should see the 2 versioned applications as following:


So, Production Redeployment of versioned applications via the new enhancements of the RESTful Management Services is possible and really simple.

RESTful Management is the future within Oracle Products ... see for example the latest release of Oracle Golden Gate, even within this product you have now a RESTful API connectivity for monitoring and diagnosing ... http://docs.oracle.com/goldengate/c1221/gg-winux/GRLWU/toc.htm#GRLWU102

These metrics are recorded in a RESTful API for use in diagnosing issues by Oracle GoldenGate Support and Development. These metrics can be used to improve CPU efficiency thus reducing load on source and target databases.


My advice / recommendation:
 have a closer look to the new enhancements of the RESTful Management Services, you have a whole new world of possibilities to refactoring your old monitoring and deployment script based on WLST, even start / shutdown / suspend / resume operations against your WebLogic Servers are possible with the new enhancements of RESTful Management Services.

WebLogic 12.2.1 - New Feature for Data Source System Properties

0 Comments
Within the new release of Oracle WebLogic Server 12.2.1 is a really cool new feature for Data Source System Properties.

In case you have mutliple data sources defined within your Oracle WebLogic Server pointing to the same Oracle Database and mostly using the same Oracle Database user, you have currently limited chances to identify in your v$session, which session belongs to which WebLogic Server Data Source.

For example, you have 2 Data Sources defined in your WebLogic Server, each Data Source is assigned to different Managed Servers within your WebLogic Domain and using the same Oracle User, so you normally see following:

select username, osuser, process, machine, terminal, program
from v$session where username = 'WLS_REPOS';
USERNAME    OSUSER    PROCESS    MACHINE       TERMINAL   PROGRAM
---------   --------  --------   -----------   ---------  ------------------
WLS_REPOS   oracle    1234       wls1221       unknown    JDBC Thin Client
WLS_REPOS   oracle    1234       wls1221       unknown    JDBC Thin Client
WLS_REPOS   oracle    1234       wls1221       unknown    JDBC Thin Client

You just see under the column program "JDBC Thin Client", but you don't see which defined Data Source is behind your connection in the Oracle Database :-(

Since Oracle WebLogic Server 12.2.1 you have now the possibilty to push a defined set of variables from your Data Source definition into the v$session.

Variable Description
${pid} First part (up to @) of ManagementFactory.getRuntimeMXBean().getName()
${machine} Second part of ManagementFactory.getRuntimeMXBean().getName()
${user.name} Java system property user.anem
${os.name} System property os.name
${datasourcename} Name of your Data Source
${partition} Name of your Partition
${serverport} Listen Port of your WebLogic Server
${serversslport} SSL Listen Port of your WebLogic Server
${servername} Name of your WebLogic Server
${domainname} Name of your WebLogic Domain

With the above list of defined variables you have a wide range of possibilties to populate them into your v$session.

Snippet of your <datasource_name>-<internal_number>-jdbc.xml Configuration File


  user
  WLS_REPOS


  v$session.osuser
  ${user.name}


  v$session.process
  ${pid}


  v$session.machine
  ${machine}


  v$session.terminal
  ${datasourcename}


  v$session.program
  WLS ${servername} @ ${domainname}

Or you can also modify your data source definition within the Oracle WebLogic Server Console under "Services / Data Sources", just select your Data Source and under "Configuration / Connection Pool" modify the "System Properties"


After saving and activating your changes, simply restart your Managed Server(s) which are the target(s) for your modified Data Sources.

You have to consider following limitations for the v$session columns:

v$session Column Length Limiations
osuser 30 characters
process 24 characters
machine 64 characters
terminal 30 characters
program 48 characters

With the above decribed changes on your Data Source definition, you are now able to identify easily your different Data Source connections into your Oracle Database :-)

select username, osuser, process, machine, terminal, program
from v$session where username = 'WLS_REPOS' order by 5;
USERNAME    OSUSER    PROCESS    MACHINE       TERMINAL   PROGRAM
---------   --------  --------   -----------   ---------  --------------------------------
WLS_REPOS   oracle    2959       wls1221       myDS       WLS ManagedServer1 @ base_domain
WLS_REPOS   oracle    2959       wls1221       myDS       WLS ManagedServer1 @ base_domain
WLS_REPOS   oracle    2959       wls1221       myTestDS   WLS ManagedServer2 @ base_domain

Oracle Forms 12c (12.2.1) first impressions

6 Comments
As I already posted over the weekend, several new Oracle Fusion Middleware Components were released by Oracle.

One of this new Components is Oracle Forms & Reports 12c (12.2.1).

I have been playing around a little bit with the latest release:


  • Oracle Forms & Reports 12c is now requiring a configured Meta Repository
  • Don't try to use as the underlying Oracle WebLogic Server 12c (12.2.1) the "standalone" WebLogic Server, you NEED to install the Fusion Middleware Infrastructure Option (1.4 GB download) or else you can not install the Forms & Reports Part on top of your WebLogic/Infrastructure
  • The new Enterprise Manager is really cool now :-) can be reached under http://yourserver:port/em

The Look'n Feel is completely redesigned, my personal feeling is that the Oracle ALTA UI from Oracle ADF was the base for this really cool redesign. 

Several New Oracle Fusion Middleware Components 12.2.1 available

0 Comments
Oracle has been busy releasing several new Release for various Oracle Fusion Middleware Components on Friday 23rd October 2015

Oracle WebLogic Server is now available as Release 12.2.1
Download can be found here: http://www.oracle.com/technetwork/middleware/weblogic/downloads/index.html

  • There are in general 3 options available for the latest Oracle WebLogic Server 12.2.1
    • Quick Installer for Developers for Windows, Linux and MAC OS X
    • Generic Installer
    • Fusion Middleware Infrastructure Installer
Oracle Forms & Reports is now also available in the Release 12.2.1
Download can be found here:

  • The latest Oracle Forms & Reports 12c (12.2.1) is available for following Operating Systems:
    • Windows 64bit
    • Linux x86-64
    • Oracle Solaris on SPARC (64bit)
    • Oracle Solaris on Intel (x86-84)
    • HP UX Itanium
    • IBM AIX on Power Systems (64bit)
Oracle Business Intelligence Enterprise Edition (OBIEE) is also released for 12.2.1.0.0
Download can be found here:

Oracle WebCenter has also been release with 12.2.1.
Oracle SOA Suite comes also along in a new release with 12.2.1


Happy Download :-)





APEX 5.0 available for download

0 Comments
Since yesterday (15th April 2015) the latest Oracle Application Express (APEX) release 5.0 is available for download.

APEX 5.0 can be found under http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html



The new APEX 5.0 is supported for all Editions of Oracle Database 11.1.0.7 or higher, even Oracle Express Edition 11g (XE) can be used for the new APEX 5.0

OBIEE automatic redirect to a Dashboard via mod_rewrite

0 Comments
Normally end users would like to have a simple URL access for Oracle Business Intelligence Enterprise Edition (OBIEE) 11g like http://webhost:7777 and than to be automatically redirected to their Dashboard, instead of typing endless complex URL's.

Assuming you have following standard implementation of an OBIEE environment which contains an Oracle HTTP Server (OHS) configured with mod_wl_ohs to be proxied to point to your WebLogic Server hosting OBIEE and an OBIEE Server, you can simply use the available OHS module mod_rewrite.

In the following I will use the within OBIEE delivered "OBIEE SampleApp Lite" application to demonstrate how to configure the redirect to a specific Dashboard.
By default after login to OBIEE you will be directed to the "bieehome" (see imagine below).


That's quite ok for testing proposes, but the classical end user wants to be pointed normally to another Dashbord, e.g. the "QuickStart / Readme" out of the "OBIEE SampleApp Lite" application (see imagine below).


By looking into the URL for the above displayed "QuickStart / Readme" Dashboard, we can easily see that the URL is containing several HMTL URL Encodings (for a full reference of HTML URL Encoding see http://www.w3schools.com/tags/ref_urlencode.asp) which are red marked:

http://webhost:7777/analytics/saw.dll?Dashboard&PortalPath=%2Fshared%2FSample%20Lite%2F_portal%2FQuickStart&page=Readme

Mostly we will find HTML URL Encodings like %2F (= forward slash) and %20 (= white space). As I was working in the past intensively with mod_rewrite, I know that such special characters within mod_rewrite rules brings you a lot of pains.

My first starting point was a usual to consult the mod_rewrite documentation (http://httpd.apache.org/docs/current/mod/mod_rewrite.html) and checking the various special flags for CondPattern like NE (noescape) and so on, playing around with RegExp. After multiple failed tests, I was thinking, why not to use the KISS approach :-)

Take from the above URL pointing directly to the "QuickStart / Readme" Dashboard all HTML URL Encodings. In this case four times %2F (= forward slash) and one time %20 (= white space) and replacing the HTML URL Encodings with the "real values" and placing them in my mod_rewrite rule as a double-quoted string:

Check in your httpd.conf that the mod_rewrite module is loaded:

LoadModule rewrite_module "${ORACLE_HOME}/ohs/modules/mod_rewrite.so"

Add at the end of your httpd.conf the following 2 lines. First line is turning your RewriteEngine on and the second line defines your mod_rewrite rule, that all requests to http://webhost:7777 should be redirected to "/analytics/saw.dll?Dashboard&PortalPath=%2Fshared%2FSample%20Lite%2F_portal%2FQuickStart&page=Readme", but with the replacement of the real values of the HTML URL Encodings:

RewriteEngine on
RewriteRule   ^/$  "/analytics/saw.dll?Dashboard&PortalPath=/shared/Sample Lite/_portal/QuickStart&page=Readme"  [R]


Save your httpd.conf and restart your OHS server. Now when an end user is accessing the URL http://webhost:7777 he will be automatically redirected to http://webhost:7777/analytics/saw.dll?Dashboard&PortalPath=%2Fshared%2FSample%20Lite%2F_portal%2FQuickStart&page=Readme

Some times its really good to give even "unconventional" solutions a chance :-)


Oracle 12.1.0.2.0 for Linux and Solaris available

0 Comments
The long awaited Oracle Database Server 12.1.0.2.0 is available under Oracle Software Delivery Website https://edelivery.oracle.com

Currently the 12.1.0.2.0 is available for:

  • Linux 64bit
  • Solaris SPARC
  • Solaris Intel 64bit

Happy download :-)

Oracle 12c Database (12.1.0.1.0) available for download

0 Comments
The long awaited Oracle 12c Database (12.1.0.1.0) is available for download under http://edelivery.oracle.com



Currently only the Linux Release is available.

Happy downloading to all :-)

Oracle WebLogic Server 11g: Interactive Quick Reference

0 Comments
Oracle has published a really nice and useful Oracle WebLogic Server 11g Interactive Quick Reference under the following link http://www.oracle.com/webfolder/technetwork/tutorials/obe/fmw/wls/Poster/poster.html



The Quick Reference shows you an architecural overview of the Oracle WebLogic Server processes, tools, configuration files, log files and so on including a short description of each section and the corresponding link to the Oracle WebLogic Server Documentation.

In addition you can also download the architecural overview picture as a PDF under following link http://www.oracle.com/webfolder/technetwork/tutorials/obe/fmw/wls/Poster/pdf/Oracle-WebLogic-Server-11g.pdf

Its really a quite useful Quick Reference for everybody who is working with Oracle WebLogic Server.

Startup or Shutdown of multiple WebLogic Managed Servers via WLST script

7 Comments
Normally you will have multiple Managed Servers within one WebLogic Server Domain. The classical approach to startup or shutdown these multiple Managed Servers are:

  • using the WebLogic Server provided scripts startManagedWebLogic.[sh|cmd] and stopManagedWebLogic.[sh|cmd] in your Domain Directory
  • using a WLST script with the command shutdown()
The first option by using the startManagedWebLogic.[sh|cmd] and stopManagedWebLogic.[sh|cmd] requires that you provide the name of the Managed Server and the AdminURL, which is not quite flexible.   The second option has a small disadvantage in case you run the command shutdown() against a Managed Server which is currently not running. You will receive error messages like:
 
weblogic.server.ServerLifecycleException: Can not get to the relevant ServerRuntimeMBean for server DemoManaged

Specially when you are trying to shutdown multiple Managed Servers within such a WLST script that uses the command shutdown(), if you hit such an error the WLST script will terminate and the potential following shutdown() commands for other Managed Servers will not be executed.

With below WLST script, you can avoid this problem and perform your startup or shutdown tasks in a more elegant way.

The WLST script is using a properties file, in my case named domain.properties which contains following:

adminurl=t3://localhost:7001
adminusername=weblogic
adminpassword=weblogic
serverlist=DemoManaged,ManagedServer

The property serverlist is containing a comma seperated list of Managed Servers which you want to control.

The WLST script is moreover using an input value (start or stop). Before performing either the start() or the shutdown() command, the script will check for the MBean ServerRuntimeMBean if its existing or not for the given Managed Server.

import getopt
# Load the properties file with all necessary values
loadProperties('domain.properties')
# Split the provided Server List String for the FOR LOOP in start and stop command
serverlistSplit=String(serverlist).split(",")
 
# Get the command, must be 'start' or 'stop'
getcommand=sys.argv[1]

# Check the provided command
if getcommand != 'start' and getcommand != 'stop':
  print 'usage: <start stop="stop">'
  exit()

# Connect to the Weblogic Admin Server
# Connection Details are retrieved from properties file
connect(adminusername, adminpassword, adminurl)

# Change to the root of the MBean hierarchy
domainRuntime()

# Start Block
if getcommand == 'start':
   # Loop over the splitted Server List string
   for s in serverlistSplit:
     # Is a ServerRuntime MBean existing for current Managed Server?
     # If yes, the current Managed Server is already running and we dont need to do anything
     bean = getMBean('ServerRuntimes/' + s)
     if bean:
       print 'Server ' + s + ' is ' + bean.getState()
     else:
       start(s, 'Server', block='false')
       print 'Started Server ' + s

# Stop Block
if getcommand == 'stop':
   # Loop over the splitted Server List string
   for s in serverlistSplit:
     # Is a ServerRuntime MBean existing for current Managed Server?
     # If no, the current Managed Server is already down and we dont need to do anything
     bean = getMBean('ServerRuntimes/' + s)
     if bean:
       shutdown(s, 'Server')
       print 'Stopped Server ' + s
     else:
       print 'Server ' + s + ' is not running'

disconnect()
exit()

Place the properties file domain.properties and the WLST script start_stop_managedservers.py in one directory, adjust the properties file to your landscape.

To call the WLST script start_stop_managedservers.py just source the required script setWLSEnv.[sh|cmd] out of your WLS_HOME/server/bin directory and then execute following command:

java weblogic.WLST start_stop_managedservers.py [start|stop]

DOAG Conference 2012 - Call for Papers

0 Comments
As every year the DOAG (German Oracle User Group) Conference will take place N├╝rnberg/Germany from the 20th November until 22nd November 2012.

The Call for Papers is already open and ends on 30th June 2012:

German Link: http://www.doag.org/de/events/konferenzen/doag-2012/fuer-referenten.html
English Link: http://www.doag.org/en/events/konferenzen/doag-2012/fuer-referenten.html

Once again, I will be in the election board for the streams (MySQL & Fusion Middleware) to rate/choose the presentation which will be shown on the conference.

Oracle Traffic Director available for download

2 Comments
During the official announcement of Oracle WebLogic Server 12c on 1st December 2011, Oracle also announced the new Oracle Traffic Director.

Oracle Traffic Director 11g is a high-performance caching HTTP proxy server. It is designed to take advantage of the unique engineered systems features of Oracle's Exalogic computing platform, providing a highly-available, on-board load-balancing reverse proxy for Oracle Fusion Middleware and Applications

Today I saw, that the Oracle Traffic Director 11.1.1.6.0 is available for Linux x86-64 in Oracle TechNet:


The Software can be found under: http://www.oracle.com/technetwork/java/webtier/downloads/traffic-director-1373931.html
The Oracle Traffic Director Documentation can be found under: http://docs.oracle.com/cd/E23389_01/index.htm