This Blog is discontinued, its only read-only

Friday, April 1, 2011

Oracle Database 11.2 Express Edition Beta available for download

Some real good news, already last year Oracle announce that they will provide an Oracle XE 11g (11.2.) Release and since today the first Beta Release of the Oracle Express Edition 11.2 (Oracle XE 11g) is available for download and testing :-)

You can find the Beta Release download under http://www.oracle.com/technetwork/database/express-edition/11gxe-beta-download-302519.html
The provided Beta Release of the Oracle XE 11.2 is available right now for Windows 32bit and Linux 64bit :-)

That the new Oracle XE 11.2 is now available for Linux 64bit is really a good news :-)

Following Linux 64bit Operating Systems are officially supported with the new Oracle XE 11.2:


  • Oracle Enterprise Linux 4 Update 7
  • Oracle Enterprise Linux 5 Update 2
  • Red Hat Enterprise Linux 4 Update 7
  • Red Hat Enterprise Linux 5 Update 2
  • SUSE Enterprise Linux 10 SP2
  • SUSE Enterprise Linux 11
What is new in the Oracle XE 11.2 limitations, that you can store now up to 11 GB user data as before in Oracle XE 10g only 4 GB. The 1 GB limitation of the SGA still remains :-(

Enjoy the testing of the new Oracle XE 11.2 Beta Release :-)

Friday, March 25, 2011

Where is my tnsnames.ora in an Oracle Fusion Middleware 11g environment?

Today a really short, but I hope useful blog post :-) I got regulary the question from customers and/or colleagues "Where is my tnsnames.ora?". I can really understand this question, as the directory structure and layout for an Oracle Fusion Middleware 11g environment is slightly different from the directory structure of the previous Oracle Application Server 10g environment.

The answer is really simple on where to find the tnsnames.ora in an Oracle Fusion Middleware 11g environment:
just go to $MW_HOME/<InstanceName>/config here you will find the tnsnames.ora.

Wednesday, March 23, 2011

The new sports - Plagiarism

Some time ago I saw in Tim Hall's Blog a post that his complete site has been stolen (My whole website stolen again…) and republished under another name.

Now it also hits me, not the whole site was copied, at the moment only one complete article of me (Oracle Internet Directory Light for tnsnames Resolution - Dirk ...)

Seems that Plagiarism is the new sport :-)

The article were re-published under the site BLOG.ABIGOLD.FR with a One-To-One copy, even all names which contains the domain name of my previous employeer and every screenshot, in which you can clearly see the domain name of my previous employeer and I am quite sure the publisher of my stolen content was never employed at this company :-)
My 2 cents for such a stupid copy action is ;-)


(Note: If you like this shirt, go to http://www.thinkgeek.com/tshirts-apparel/unisex/frustrations/6b6e/ )

Only after I contacted the service provide of this domain, they change the author name to my name.
Seems that some people want to adorn themself with borrowed plums

Sunday, March 6, 2011

Switching Oracle HTTP Server to Port 80

If you are using the Oracle Webtier 11g (11.1.1.2.0 / 11.1.1.3.0 / 11.1.1.4.0) in your projects and specially the Oracle HTTP Server, you face normally the problem, that the Oracle HTTP Server is configured with a Listen Port of 7777 or something like this.
But endusers dont like to remember always the Port number of the Oracle HTTP Server, so the goal is to reconfigure the Oracle HTTP Server. Under a UNIX operating system you have to consider one important point for this task, all ports <1024 belongs to root and normally the Oracle Webtier is installed under a own user (normally user oracle) which don't have root privileges. So the ownership of the .apachectl binary must be changed.

Following steps must be done:
  • Shutdown your Oracle HTTP Server
  • Reconfigure the Listen Port
  • Change the .apachectl binary
  • Restart your Oracle HTTP Server and test
The first step is to shutdown the Oracle HTTP Server, this must be done with opmnctl. The binary you can find under your WebtierHome/instances/instance1/bin.
Connect as the Oracle software user (oracle) to your server

# assuming your MW_HOME is /u00/app/oracle/product/fmw-11.1.1 
export MW_HOME=/u00/app/oracle/product/fmw-11.1.1
cd $MW_HOME/Oracle_WT1/instances/instance1/bin
./opmnctl stopall


Second step is to configure the Listen Port for the Oracle HTTP Server to port 80

# assuming you are still connected as oracle user to your sevrer
cd $MW_HOME/Oracle_WT1/instances/instance1/config/OHS/ohs1
cp httpd.conf httpd.conf.save
vi httpd.conf
# Now go to the line with Listen <portnumber> (normally 777x)
# and replace the port number to port 80
Listen 80
# save the changes


The third step is to change the ownership and permissions of the .apachectl binary, this step must be done as root user:

# assuming you are connected to the server as root user
# use the MW_HOME from step 1
cd $MW_HOME/Oracle_WT1/ohs/bin
# be aware, we have to modify the hidden file .apachectl (the dot is correct) 
ls -la .apachectl
-rwxr-x--- 1 oracle oinstall 13278 Dec 17 03:54 .apachectl
chown root .apachectl
chmod 6750 .apachectl
ls -la .apachectl
-rwsr-s--- 1 root oinstall 13278 Dec 17 03:54 .apachectl

The last step is to startup your reconfigured Oracle HTTP Server, for this you must connect to your server as Oracle Software user:

cd $MW_HOME/Oracle_WT1/instances/instance1/bin
./opmnctl startall
# Then check the status with the option -l
# to see if your Oracle HTTP Server is up and
# the option -l display the used ports (see picture below)
./opmnctl status -l



The final test is, startup your browser and point to your Oracle HTTP Server

Friday, March 4, 2011

My Oracle ACE Trophy arrived

Today I received a small package with a warning label "Please handle with care - Glass", inside was my Oracle ACE Trophy :-)

Looks cool on my desk :-)

Tuesday, March 1, 2011

Why you should check the default grants to PUBLIC

Today something Oracle Database Security related: Why you should have a look on the default grants to PUBLIC in an Oracle Database.

Just a small showcase:
  • One Application Schema APP_USER which owns some tables
  • One Application related Role APP_READ to which grant select on APP_USER.<TABLENAME> were given
  • One Enduser named EVIL :-) which got create session and hold the APP_READ role
  • One Enduser named FRIENDLY :-) which got create session and hold the APP_READ role

-- First lets create the Application Schema APP_USER
create user APP_USER identified by mysecrectpassword;
grant connect, create table to APP_USER;
create role APP_READ;

-- Secondly create the Enduser EVIL
create user EVIL identified by evilpassword;
grant connect, app_read to EVIL;

-- Thirdly create the Enduser FRIENDLY
create user FRIENDLY identified by friendlypassword;
grant connect, app_read to FRIENDLY;

-- Connect with the Application Schema APP_USER
-- Create one table
-- and asign the select right to the Application Role APP_READ
conn app_user/mysecretpassword
create table t1 as select * from all_objects;
grant select on t1 to APP_READ;

Now we have to open 2 sessions to the Database, one connected with the Application User EVIL and one with the Application User FRIENDLY.

In the session with the user EVIL we execute following SQL statement:
conn evil/evilpassword
exec sys.dbms_snapshot.BEGIN_TABLE_REORGANIZATION('APP_USER','T1');

In the second session with the user FRIENDLY we try now to run select on the table APP_USER.T1:
conn friendly/friendlypassword
select * from APP_USER.T1;
The session from the user FRIENDLY is not responding :-( The session from user FRIENDLY will only responding when we are running following SQL Statement in the session of user EVIL:
-- Session of user EVIL
exec sys.dbms_snapshot.END_TABLE_REORGANIZATION('APP_USER','T1');
-- Some errors will come up, as the used table
-- have not a materialized view log
ERROR at line 1:
ORA-23413: table "APP_USER"."T1" does not have a materialized view log
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.DBMS_SNAP_INTERNAL", line 703
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2811
ORA-06512: at line 1

In the above example are clearly demonstrated two major problems:
  • Even with a create session privilege you have too many privileges through the default grants to PUBLIC
  • The Procedure dbms_snapshot.BEGIN_TABLE_REORGANIZATION takes every table on which I got a select right, no matter if its just a normal table

The above example shows clearly that we have to be careful with the default grants to PUBLIC in an Oracle Database.

Above shown example were executed under Oracle 11.1.0.7.0 and Oracle 11.2.0.1.0.

Saturday, February 19, 2011

Oracle Reports 11.1.1 Reports Configuration Error

You might run in an error while you are installing Oracle Reports 11.1.1.2.0 / 11.1.1.3.0 / 11.1.1.4.0, that the configuration step "Executing: opmnctl startproc ias-component ..." will throw an error.




The error message just state that while executing the command "opmnctl startproc ias-component=ReportsServer_<servername>_<instance>" an error occurs. If you check the corresponding Install Logfile, you will not find something really usefull. Only stuff like "failed to start a manage process after the maximum retry limit".












Only a look in the Reports Logfile will give you a hint whats the problem :-) The Reports Logfile you can find under $MW_HOME/<instance>/diagnostics/logs/ReportsServerComponent/ReportsServer_<servername>_<instance>/rwserver_diagnostic.log

Here you can see the error message REP-50600, that Broadcasting is disabled.
This error message points to a problem with the network, as Oracle Reports is using a multicast mechanism to publish his Reports Servicename into the network.

Normally this problem is related to a missing or wrong "Default Gateway" on the server.










Just set your default gateway and retry after the changes the configuration step which has been failed.

After that the configuration step "Executing: opmnctl startproc ias-component ..." should pass successfully.

Thursday, February 17, 2011

Percentage used of Tablespaces

I regulary have disucssions with colleagues what is the used percentage of a tablespace in an Oracle Database, my reply is normally "it depends :-)". Most of people rely on tools like Grid Control and so on, but these tools are showing only the percentage usage with a scope of the moment.
Lets assume we have a tablespace with one datafile. The datafile is created with an initial size of 100 MB and maxsize of 1024 MB. Now we fill up the datafile with some tables which all together are using 90 MB. So the normal tools will show us that the tablespace is used for 90%. Thats correct for the moment, but we have to consider that the datafile can grow until 1024 MB. When we consider this we come to:
 (90 MB / 1024 MB) * 100 = 8.78 %

A percentage used of 90% versus 8.78% sounds a little bit different :-)

Below is a small script, which consider the maxsize option of datafiles for a tablespace, so that you can see the actual percenatge usuage and the percentage usage for the possible maxsize:

set linesize 200
col name format a20

select (select tablespace_name
from dba_tablespaces
where tablespace_name = b.tablespace_name
) name
,round(kbytes_alloc/1024, 2) mbytes
,round((kbytes_alloc-nvl(kbytes_free,0))/1024, 2) used
,round(nvl(kbytes_free,0)/1024, 2) free
,round(((kbytes_alloc-nvl(kbytes_free,0))/ kbytes_alloc)*100, 2) pct_used
,round(nvl(largest,0)/1024, 2) largest
,round(nvl(kbytes_max,kbytes_alloc)/1024, 2) max_size
,round(decode(kbytes_max,0,0,((kbytes_alloc-nvl(kbytes_free,0))/kbytes_max)*100),2) pct_max_used
,(select extent_management
from dba_tablespaces
where tablespace_name = b.tablespace_name) extent_management
,(select segment_space_management
from dba_tablespaces
where tablespace_name = b.tablespace_name) segment_space_management
from (select sum(bytes)/1024 Kbytes_free, max(bytes)/1024 largest, tablespace_name
from sys.dba_free_space
group by tablespace_name ) a
,(select sum(bytes)/1024 Kbytes_alloc, sum(maxbytes)/1024 Kbytes_max, tablespace_name
from sys.dba_data_files
group by tablespace_name
union all
select sum(bytes)/1024 Kbytes_alloc, sum(maxbytes)/1024 Kbytes_max, tablespace_name
from sys.dba_temp_files group by tablespace_name )b
where a.tablespace_name (+) = b.tablespace_name
order by 2;

And the result should look like as follows:

NAME         MBYTES     USED       FREE       PCT_USED   LARGEST    MAX_SIZE   PCT_MAX_USED  EXT_MANAGE  SEGMENT_SPACE
------------ ---------- ---------- ---------- ---------- ---------- ---------- ------------ ------------ ----------
TOOLS        10         .062       9.93       .62        9.93       65535.96    0            LOCAL         AUTO
DRSYS        20         12.56      7.43       62.81      7.18       65535.96    .02          LOCAL         AUTO
USERS        25         7.06       17.93      28.25      17.93      65535.96    .01          LOCAL         AUTO
INDX         25         .06        24.93      .25        24.93      65535.96    0            LOCAL         AUTO
XDB          103.75     103.5      .25        99.75      .25        65535.96    .16          LOCAL         AUTO
TEMP         256        256        0          100        0          0           0            LOCAL         MANUAL
UNDOTBS1     636        85.31      550.68     13.41      189.93     32768       .26          LOCAL         MANUAL
SYSAUX       1024       480.68     543.31     46.94      502.87     1024        46.94        LOCAL         AUTO
SYSTEM       1024       675.31     348.68     65.94      347.93     65535.96    1.03         LOCAL         MANUAL
Under the column PCT_MAX_USED you can see the percentage usage in consideration with the maxsize of the datafile(s) and under the column PCT_USED you can see the actual percentage usage calculated according to the actual datafile(s) size.

Monday, February 7, 2011

Oracle WebCenter Suite 11g WebCast available

The Oracle WebCast "WebCenter Suite 11g Release 1 PS3 (11.1.1.4.0) - The Platform for the Modern User Experience" is available in case you miss the LiveStream on 2nd February 2011.

Just click here :-)

Wednesday, February 2, 2011

Pre-built Virtual Machine for Oracle WebCenter Portal Framework 11gR1 PS3 (11.1.1.4.0) available

Since a few day the latest Oracle WebCenter Suite is available (see my post from 25th Januar 2011) and now a pre-built Virtual Machine with a complete WebCenter 11g R1 PS3 (11.1.1.4.0) is available in the Oracle Technology Network (OTN) under the link http://www.oracle.com/technetwork/middleware/webcenter/downloads/owcs-portalfw-vbox-284132.html.

This Pre-Built Virtual Machine is for the Open-Source Product Oracle Virtual Box (http://www.oracle.com/technetwork/server-storage/virtualbox/overview/index.html) and contains following:

  • Oracle Enterprise Linux 5
  • Oracle XE Database 10.2.0.1.0
  • Oracle WebLogic Server 10.3.4.0
  • Oracle WebCenter Portal Framework 11gR1 PS3 (11.1.1.4.0)
  • JDeveloper 11.1.1.4
  • Oracle WebCenter Extension for JDeveloper (11.1.1.4.0)

Happy dowloading and enjoy the new User Interaction functionality with WebCenter :-)

Thursday, January 27, 2011

More Fusion Middleware 11.1.1.4.0 Components available

I just discover that on the Oracle Edelivery Website http://edelivery.oracle.com/ are more Oracle Fusion Middleware 11.1.1.4.0 Components available for download, but unfortunally right now only for 32-bit Operating Systems Windows and Linux.

You will find there:
  • Oracle Fusion Middleware Companion 11g (11.1.1.4.0)
  • Oracle Portal, Forms, Reports and Discoverer 11g Patch Set 3 (11.1.1.4.0)
  • Oracle Identity Management 11g Patch Set 3 (11.1.1.4.0)

I hope that in the next days the 64-bit Operating System Releases will follow :-)
In the meantime everybody who got an My Oracle Support (formerly Oracle Metalink) account can download the Patches for Oracle Fusion Middleware 11.1.1.4.0 for 64-bit Operating Systems (Linux x86-64, Windows 64-bit, Oracle Solaris SPRAC, AIX) from there.

In the meantime: happy downloading and testing :-)

Update Note: I just saw that now also the Oracle Fusion Middleware 11.1.1.4.0 for Linux x86-64, Windows 64bit and Oracle Solaris SPARC 64bit is available on http://edelivery.oracle.com

Tuesday, January 25, 2011

Oracle WebCenter Suite 11.1.1.4.0 available

Since today the new release of the Oracle WebCenter Suite 11.1.1.4.0 (11g Release 1 PS3) is available in the Oracle Technology Network under the following link: http://www.oracle.com/technetwork/middleware/webcenter/downloads/index.html

There are several new features, mainly I am interested to see the integration with the latest Oracle Universal Content Management.

Moreover Oracle is providing on the 2nd February 2011 at 10 a.m. PT (19:00 CET) a Webcast for the new launch of the Oracle WebCenter 11g R1 PS3. Registration can found done under following link: Register here.

There is also a good White Paper New Features available under following link: Click here
Also the new designed OTN download page is cool :-) Now you can see directly what additional software you will need including direct download link.

Deferred Segment Creation under Oracle 11.2 and Sequences

An ex-colleague (Christian Zuberbühler) of me pointed me to a strange behavior under Oracle 11.2 with sequences.
So I had a quick look at it, following show case:

create sequence seq_t1_id start with 1;
create table t1 (id number, col1 varchar2(20));
insert into t1 values (seq_t1_id.nextval, 'Test Value expected 1');
commit;
select * from t1;
ID          COL1
---------- --------------------
2           Test Value expected 1

Nice :-) Normally everybody is expecting under the column ID the value 1.

As my test table is created under Oracle 11.2 the default setting for the new feature deferred_segment_creation is true. Therefor the insert command is facing an ORA-14403 internally as the affected table doesn't have any segment. A new segment will be created for my test table and the insert command will be re-run, so the inserted value from the used sequence will be one value higher.
The internally faced ORA-14403 can easily proven with the event 14403. Just set the event 14403 before you execute the insert statement:

create sequence seq_t1_id start with 1;
create table t1 (id number, col1 varchar2(20));
ALTER SESSION SET EVENTS '14403 trace name errorstack level 3'; 
insert into t1 values (seq_t1_id.nextval, 'Test Value expected 1');
commit;

In the corresponding alertlog you will find then something similar like this:

Tue Jan 25 16:54:19 2011
Errors in file e:\oracle\diag\rdbms\xxx\xxx\trace\xxx_ora_6072.trc:
ORA-14403: cursor invalidation detected after getting DML partition lock
Tue Jan 25 16:54:26 2011
Trace dumping is performing id=[cdmp_20110125165426]

According to Oracle this is not a bug, its an expected behavior from Oracle 11.2 going. The recommended solution from Oracle is "deferred_segment_creation=FALSE" . . .

Wednesday, January 19, 2011

I am now Oracle ACE

Last night I receive an email from Oracle, that I was nominated by Dmitri Khanine (http://stellentexperts.blogspot.com/), who is also an Oracle ACE, for the Oracle ACE Award and the I receive the Award :-)


So, I am now Oracle ACE, cool ;-)


More informations about the Oracle ACE Award can be found under http://www.oracle.com/technetwork/community/oracle-ace/index.html

Dmitri, many thanks for the nomination ;-)

Saturday, January 15, 2011

Oracle Jdeveloper and Oracle ADF 11g Release 1 PatchSet 3 is available

Since yesterday (Friday, 14.01.2011) the Patch Set 3 (11.1.1.4.0) is available for download in the Oracle TechNet (OTN) under the link: http://www.oracle.com/technetwork/developer-tools/jdev/downloads/index.html

The complete list of new features and bugfixes can be found under the link: http://www.oracle.com/technetwork/developer-tools/jdev/index-088099.html

So happy downloading ;-)

Friday, December 10, 2010

Last Day in my Consulting Life

Today will be my last day in my consulting life :-) After several years as consultant, time is coming to settle down.
But at first XMas vacation will be starting today and from 1st January 2011 I will have a new position at Philip Morris International.
But I will still work in the Oracle Section and I will still continue to blog here about my favorite stuff Oracle Fusion Middleware :-)
So, stay tune for the next post . . .

Wednesday, December 1, 2010

WebLogic Server Logfiles

I am actually giving an Oracle University Course "Oracle WebLogic Server 11g: Administration Essentials". Today we reach the chapter Logfiles and an interesting question came up from one student:

Is it possible to define one logfile for multiple Managed Server and the global Domain Logfile? So that I don't have to go through multiple logfiles for investigation of problems or errors

So, we just tested it live as I never came to this idea to merge the Managed Server Logfiles into the Domain Logfile.
I just copy the fullpath of the Domain Logfile into the logfile defintion of one Managed Server of the Domain, saved this changes and did a restart of the Managed Server and ... Its working :-) All Managed Server related log entries were captured in the Domain Logfile :-)

Even as a teacher you can learn from time to time something during holding a course :-)

Wednesday, November 24, 2010

Oracle 11g Release 2 Interactive Quick Reference

Today I discover the new available Oracle 11g Release 2 Interactive Quick Reference. The Quick Reference can be downloaded from following link http://www.oracle.com/go/?&Src=7027600&Act=54&pcode=WWOU10044054MPP047
The download contains 2 files, one Flash Player executable and a PDF.
The Flash Player executable is really cool :-) nice work from Oracle. Its contains all DBA-Views, all Oracle Processes and an Oracle Architecture Diagram. The PDF contains just teh Oracle Architecture Diagram.

I hope they will also provide a version of the Interactive Quick Reference for Non-Windows users :-)

Friday, September 17, 2010

Creating a Windows Service for Oracle WebLogic Server

In case you are using the Oracle WebLogic Server under Windows, you may want to run your WebLogic Server as a Windows Service instead of all time running the provided cmd files to startup your WebLogic Server.
For this Oracle provides us a small script to create a Windows Service for our WebLogic Server, the script is located in %WL_HOME%\server\bin with the name installsvc.cmd. The best way to use this script is to build up a small wrapper script with all the necessary variable declarations and a call on the installsvc.cmd:

echo off

SETLOCAL
set DOMAIN_NAME=DemoDomain
set USERDOMAIN_HOME=D:\oracle\fmw-11.1.1\user_projects\domains\DemoDomain
set SERVER_NAME=DemoAdminServer
set PRODUCTION_MODE=true
set JAVA_VENDOR=BEA
set JAVA_HOME=D:\oracle\fmw-11.1.1\jrmc-4.0.1-1.6.0
set MEM_ARGS=-Xms256m -Xmx512m
call "D:\oracle\fmw-11.1.1\wlserver-10.3.3\server\bin\installSvc.cmd"
ENDLOCAL

Just adjust the above example to your settings and run the wrapper script, this will create you a Windows Service "beas %DOMAIN_NAME%_%SERVER_NAME%", if you dont like the naming convention for the Windows Service to be created, just edit the installsvc.cmd script. Nearly at the end you will find following line:
"%WL_HOME%\server\bin\beasvc" -install -svcname:"beasvc %DOMAIN_NAME%_%SERVER_NAME%" -javahome:"%JAVA_HOME%" -execdir:"%USERDOMAIN_HOME%" -maxconnectretries:"%MAX_CONNECT_RETRIES%" -host:"%HOST%" -port:"%PORT%" -extrapath:"%EXTRAPATH%" -password:"%WLS_PW%" -cmdline:%CMDLINE%

Just adjust the option -svcname to your prefered settings.

Sunday, September 12, 2010

Oracle Universal Content Management 11g in another way

Today I discover the "Adventures of ECM 11g" from Billy Cripe (Fishbowl Solutions). That's really another cool way how to learn about Oracle Enterprise and Universal Content Management :-)

Enjoy it ...

That,s just part 1, right now you'll find 4 parts under Youtube