Feed aggregator

Essbase and IBM DB2

Dylan Wan - Mon, 2008-01-28 13:40

I read an interesting article, IBM DB2 Minus OLAP from the SQL Server magazine. Essbase used to be OEM-ed and re-branded by IBM as IBM DB2 OLAP server for ten years. The relationship stopped two yeas ago.

Many DB2 customers actually built their custom analytics applications on the top of Essbase.


Categories: BI & Warehousing

Sending A Message - Using Essbase Custom Defined Functions

Oracle EPM Smart Space - Sun, 2008-01-27 19:46
In my last post, I talked about how the messaging capabilities contained within the Smart Space product can be leveraged in non-traditional ways. One of the best ways is by using the Smart Space Java API.

I am a big fan of the best OLAP database on the planet: Essbase. Essbase has a great feature where a developer can write their own custom Java functions that can then be called by the Essbase calculator. I have always wanted to have the ability from within an Essbase calculation script to notify Essbase users that a calculation has completed. The combination of the Smart Space messaging Java API and the Essbase custom defined function (CDF) will now allow me to fulfill that dream.

When writing to the Smart Space Java API, there are a number of JAR files that are required from Smart Space (inform.jar, smack.jar, smackx.jar, smackx-debug.jar and log4j.jar). There are four main operations in the Smart Space API: connecting, disconnecting, creating the message and sending the message. As of today, both a discussion message (a message that uses the discussion dialog) and a notification message (a message that uses the Smart Space toast dialog) can be sent using the Java API.

This 9.3.1 code sample shows the three Smart Space messaging operations exposed in the proper format to be used as an Essbase custom defined function.

package com.hyperion.essbase.cdf.smartspace;

import com.hyperion.smartspace.inform.info.*;
import com.hyperion.smartspace.inform.impl.InformImpl;
import java.util.List;
import java.util.ArrayList;

public class SSMessage {
private static InformImpl inform = new InformImpl();
private static String sServer;

public static void main(com.hyperion.essbase.calculator.Context ctx,String[] args)
{
sendMessage(args[0],args[1],args[2]);
}

public static void connect(String sColabServer, String sUser, String sPassword) {
inform = new InformImpl();
try
{
System.out.println("Trying to connect");
sServer = sColabServer;
inform.connect(sServer, 5222, sUser + "\\40native\\20directory@" + sColabServer, sPassword);
}
catch (Exception e1)
{
System.out.println("Error: " + e1.getMessage().toString());
}
}

public static void disconnect() {
try
{
System.out.println("Disconnecting");
inform.disconnect();
inform = null;
}
catch (Exception e1)
{
System.out.println("Error: " + e1.getMessage().toString());
}
}

public static void sendMessage(String sType, String sToUser, String sMessage) {
MessageType mType = new MessageType();

try
{

if (sType.toUpperCase().equals("DISCUSS")) {
mType = MessageType.Chat;
} else if (sType.toUpperCase().equals("MEET")) {
mType = MessageType.GroupChat;
}
else
{
mType = MessageType.Headline;
}

List recipients = new ArrayList();
recipients.add(sToUser + "\\40native\\20directory@" + sServer);

//send created message
if (inform.isConnected() == true)
{
//create jabber message with recepients list and type
Message message = inform.createMessage("t", "t", recipients, mType);
//create body
message.setBody(sMessage);

inform.sendMessage(message, recipients);
System.out.println("Message sent");
}
else
{
System.out.println("Message not sent");
}

}
catch (Exception e1)
{
System.out.println("Error: " + e1.getMessage().toString());
}
}
}

Once this code has been compiled and registered with Essbase as a CDF, the functions can then be accessed from with an Essbase calculation script. This example script sends a discussion message for every value in the database where there is a negative variance for January Sales using the Sample Basic Essbase database. It also shows how to send a notification message to any user.

Set UpdateCalc Off;Set ClearUpdateStatus After;

RUNJAVA com.hyperion.essbase.cdf.smartspace.SSConnect
"servername"
"essbaseBOT"
"password";

RUNJAVA com.hyperion.essbase.cdf.smartspace.SSMessage
"DISCUSS"
"mlarimer"
"The following items currently have a negative variance to budget for Jan Sales:" ;


Fix (@LevMbrs("Market",0),@LevMbrs("Product",0),"Jan","Actual")

"Sales" (IF("Variance" <>
@JechoString(@Name(@CurrMbr("Market")));
@JsendMessage( "DISCUSS", "mlarimer", @JgetConcatenate(@LIST(@Name(@CurrMbr("Market"))," -> ", @Alias(@CurrMbr("Product"))," = ", @JgetString("Variance"))));
ENDIF);
EndFix

RUNJAVA com.hyperion.essbase.cdf.smartspace.SSMessage "NOTIFY" "mlarimer" "one" ;
RUNJAVA com.hyperion.essbase.cdf.smartspace.SSMessage "NOTIFY" "mlarimer" "two" ;
RUNJAVA com.hyperion.essbase.cdf.smartspace.SSMessage "NOTIFY" "mlarimer" "three" ;

RUNJAVA com.hyperion.essbase.cdf.smartspace.SSDisconnect;


Note: This example is very simplistic as it uses a hardcoded username and password in the script itself. There are a number of ways to use variables that can replace the username and password and thus not have them hardcoded in the script.

I am really excited about the future of a product like Oracle EPM Smart Space. It will enable developers to build cool new solutions that have never been possible to build in the past.


Categories: Development

UKOUG - My presentation slides are now available...

Anthony Rayner - Sun, 2008-01-27 12:22
Just a quick post to mention my slides from my UKOUG presentation, 'Building The Rich User Interface with Oracle Application Express and Ajax' are now available to download.

Sorry about the delay for anyone who wanted to take a look at this sooner, I wanted to tidy up some of the code before making it available and have only just had a chance to look at it.

If you are interested in catching this again, I will be doing a very similar presentation at the UKOUG Combined SIG Day at Baylis House in Slough on 27th February.

So come along and say hi!

Categories: Development

It's here and live!

Peter Khos - Sun, 2008-01-27 12:22
It's Day 3 of our Order Management implementation (Oracle E-Business Suite) weekend. The team started on Friday and we expect to have the business folks in this afternoon to do validation and verification. There is a whole bunch of IT, business and of course, our implementation partner working really, really hard to ensure that the implementation goes well. It is complicated by the fact that Peter Khttp://www.blogger.com/profile/14068944101291927006noreply@blogger.com0

Introducing RuleGen

Jornica - Sun, 2008-01-27 09:15

I've been working with CDM Ruleframe for a few years now. Recently I've attended a presentation about another framework focusing on business rules called RuleGen.

RuleGen is a framework written in PL/SQL that generates  code to maintain data integrity constraints. Right now RuleGen implements table constraints, i.e. at most one president allowed in EMP,  and database constraints, i.e. every department has at least two employees. Enforcing a data integrity constraint is done in two steps. The first step is about administering the affected rows of a transaction (inserts, updates and deletes). The second step is validating the constraint against the affected rows. If the constraint is violated an exception is raised.  You can also say the first step is about WHEN  the constraint is validated and the second step is HOW the constraint is validated.

There are switches to influence the runtime behavior of RuleGen like the execution model: stop on the first constraint violation or continue after the first constraint violation in order to collect a list of constraint violations (like the message stack in CDM Ruleframe). It is also possible to defer checking (in contrary to immediate checking). 

A difference between CDM Ruleframe and RuleGen is the relationship with Oracle Designer. RuleGen is not integrated with Oracle Designer where CDM Ruleframe is. The definition (remember HOW and WHEN) of data integrity constraints is either done with SQL*Plus or with a small APEX application. Another  difference between RuleGen and CDM Ruleframe is there is no PL/SQL coding required with RuleGen. The definition of data integrity constraints is done in SQL queries completely.

In my opinion, the functionality of RuleGen looks very promising. Keep an eye on it!

Small change make difference

Virag Sharma - Sun, 2008-01-27 08:41

Small change make difference.

How small , small things make difference , here is one live example
One of my friend want to learn 11g, so she downloaded 11g and started installing on

Linux Box and created Database manually. Next time when she logged in, she did not know where she installed 11g , since she created database manually , so there was no entry in “oratab”

I remember command “pwdx” on Unix Solaris , which give current working directory of processes

$ uname -a

SunOS mysun 5.8 Generic_xyz sun4u sparc SUNW,Ultra-Enterprise

MYSUN:oracle> (10.1.0.4) /usr/proc/bin

$ ps -aef grep pmon

oracle 2424 1 0 Jan 18 ? 13:39 ora_pmon_test
oracle 8337 13002 0 05:31:47 pts/7 0:00 grep pmon

mysun:oracle> (10.1.0.4) /usr/proc/bin

$ pwdx 2424
2424: /u01/app/oracle/product/10.1.0.4/dbs

<

But on Linux(RHEL 4 ) there is no command like “pwdx” . In linux you can check current working directory of processes ( ORACLE_HOME/dbs i.e lock file location ) in /proc/

<?xml:namespace prefix = o /?>

[root@apps001 proc]# ps -aef grep pmon

oracle 2826 1 0 20:55 ? 00:00:00 xe_pmon_XE
oracle 8268 1 0 21:21 ? 00:00:00 ora_pmon_orcl11g
root 23180 13728 0 23:19 pts/2 00:00:00 grep pmon

[root@apps001 proc]# ls -l /proc/8268

total 0
dr-xr-xr-x 2 oracle oinstall 0 Jan 27 23:20 attr
-r-------- 1 oracle oinstall 0 Jan 27 23:20 auxv
-r--r--r-- 1 oracle oinstall 0 Jan 27 23:19 cmdline
lrwxrwxrwx 1 oracle oinstall 0 Jan 27 23:20 cwd -> /u01/app/oracle/11.1.0/dbs
-r-------- 1 oracle oinstall 0 Jan 27 23:20 environ
lrwxrwxrwx 1 oracle oinstall 0 Jan 27 23:20 exe -> /u01/app/oracle/11.1.0/bin/oracle
dr-x------ 2 oracle oinstall 0 Jan 27 23:20 fd
-rw-r--r-- 1 oracle oinstall 0 Jan 27 23:20 loginuid
-r-------- 1 oracle oinstall 0 Jan 27 23:20 maps
-rw------- 1 oracle oinstall 0 Jan 27 23:20 mem
-r--r--r-- 1 oracle oinstall 0 Jan 27 23:20 mounts
lrwxrwxrwx 1 oracle oinstall 0 Jan 27 23:20 root -> /
-r--r--r-- 1 oracle oinstall 0 Jan 27 23:18 stat
-r--r--r-- 1 oracle oinstall 0 Jan 27 23:20 statm
-r--r--r-- 1 oracle oinstall 0 Jan 27 23:16 status
dr-xr-xr-x 3 oracle oinstall 0 Jan 27 23:20 task
-r--r--r-- 1 oracle oinstall 0 Jan 27 23:20 wchan

>

<

[oracle@apps001 oracle]$ cd /u01/app/oracle/11.1.0/dbs

[oracle@apps001 dbs]$ ls
hc_orcl11g.dat initdw.ora init.ora lkORCL11G orapworcl11g spfileorcl11g.ora

[oracle@apps001 dbs]$ /sbin/fuser *

hc_orcl11g.dat: 8268 8268m 8270 8270m 8274 8274m 8276 8276m 8278 8278m 8282 8282m 8284 8284m 8286 8286m 8288 8288m 8290 8290m 8292 8292m 8294 8294m 8296 8296m 8298 8298m 8300 8302 8312 8312m 8314 8314m 8316 8316m 8320 8322 8394 8394m 22755 25372

lkORCL11G: 8268 8276 8278 8284 8286 8288 8290 8292 8294 8296 8298 8312 8314 8316 8320 8322 8394 22755 25372

I asked her to create one small shell script to source oracle 11g environment variable ,
she wrote following script

ORACLE_HOME=/u01/app/oracle/11.1.0/
export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$PATH
export PATH
ORACLE_SID=orcl11g
export ORACLE_SID

~

"11g.env" 7L, 136C written

[oracle@apps001 ~]$chmod 755 11g.env
[oracle@apps001 ~]$ . ./11g.env

She called me after some time and said , after sourcing 11g environment variable , when she try to connect oracle 11g as sysdba , it says “connect to ideal instance”

[oracle@apps001 ~]$ . ./11g.env

[oracle@apps001 ~]$ sqlplus “/ as sysdba”
SQL*Plus: Release 11.1.0.6.0 - Production on Sun Jan 27 23:45:42 2008
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Connected to an idle instance.

Ctl-d

[oracle@apps001 ~]$ ps -aef grep pmon
oracle 2826 1 0 20:55 ? 00:00:00 xe_pmon_XE
oracle 8268 1 0 21:21 ? 00:00:00 ora_pmon_orcl11g
oracle 24791 24446 0 23:46 pts/4 00:00:00 grep pmon

[oracle@apps001 8268]$ cd /u01/app/oracle/11.1.0/dbs

[oracle@apps001 dbs]$ /sbin/fuser *

hc_orcl11g.dat: 8268 8268m 8270 8270m 8274 8274m 8276 8276m 8278 8278m 8282 8282m 8284 8284m 8286 8286m 8288 8288m 8290 8290m 8292 8292m 8294 8294m 8296 8296m 8298 8298m 8300 8302 8312 8312m 8314 8314m 8316 8316m 8320 8322 8394 8394m 22755 25372

lkORCL11G: 8268 8276 8278 8284 8286 8288 8290 8292 8294 8296 8298 8312 8314 8316 8320 8322 8394 22755 25372

# It means database is up (may be nomount , mount or open mode )
#

When ran “fuser” on lock file oracle BG processes are connected to lock file, It means database is up (may be nomount , mount or open mode )

Checked alert.log , to make sure things are fine. It shows database is OPEN

[oracle@apps001 oracle]$ adrci
ADRCI: Release 11.1.0.6.0 - Beta on Sun Jan 27 23:52:16 2008
Copyright (c) 1982, 2007, Oracle. All rights reserved.

ADR base = "/u01/app/oracle"
adrci> set editor vi
adrci> show alert

Choose the alert log from the following homes to view:

1: diag/tnslsnr/apps001/listener
2: diag/rdbms/orcl2/orcl2
3: diag/rdbms/stdorcl2/stdorcl2
4: diag/rdbms/orcl11g/orcl11g
Q: to quit

Please select option:4

space available in the underlying filesystem or ASM diskgroup.
2008-01-27 21:22:07.366000 +05:30
Completed: ALTER DATABASE OPEN

2008-01-27 21:22:26.499000 +05:30
Starting background process CJQ0
CJQ0 started with pid=26, OS id=8394
2008-01-27 21:23:24.231000 +05:3
Thread 1 advanced to log sequence 3
Current log# 3 seq# 3 mem# 0: /u01/app/oracle/oradata/orcl11g/redo03.log
2008-01-27 21:29:03.616000 +05:30

Finally decided to check shell script , which source 11g environment variable. There suppose to be no issue at script because we able to run “adrci” and able to see alert.log

[oracle@apps001 ~]$vi 11g.env
ORACLE_HOME=/u01/app/oracle/11.1.0/
export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$PATH
export PATH
ORACLE_SID=orcl11g
export ORACLE_SID

~
~
"11g.env" 7L, 136C written


#
# I made little change in script i.e. removed last “/” from ORACLE_HOME
#


vi 11g.env
ORACLE_HOME=/u01/app/oracle/11.1.0
export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$PATH
export PATH
ORACLE_SID=orcl11g
export ORACLE_SID

~
~
"11g.env" 7L, 136C written

After I removed last “/” from ORACLE_HOME , she able to connect to database J

[oracle@apps001 ~]$ . ./11g.env

[oracle@apps001 ~]$ sys

SQL*Plus: Release 11.1.0.6.0 - Production on Mon Jan 28 00:00:54 2008
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>

So small change make difference.

Categories: DBA Blogs

SQL Injection for parents

Andrew Fraser - Fri, 2008-01-25 18:46

This page has been moved to http://andrewfraserdba.com/?p=51


Categories: DBA Blogs

Server Manager Logging - Part 3

Mark Vakoc - Fri, 2008-01-25 16:46
Managed Home Agent Logging
OK, now on to the good stuff. The managed home agent, herein referred to as simply the agent, is responsible for a majority work performed by Server Manager (SM). This includes:
  • registering/installing E1 managed instances
  • registering and managing IBM WebSphere and Oracle Application Server
  • managing the configuration file(s) for E1 managed instances
  • starting/stopping E1 servers and the J2EE servers
  • performing tools release upgrades/downgrades for E1 servers
  • discovering and sending log files to the management console for viewing
You get the idea. The agent does most of the work. If anything goes wrong during one of these items, or your just an inquisitive person, the place you'll want to look to see what's going on are the agent's log files.
Logging Overview

Before we dig too far into the log files themselves let's get an understanding of the logging system used. Server Manager makes use of the standard java logging framework. This framework is different than the logging engine used by most other E1 software components which are based on the jdelog.properties configuration file.

The java logging framework exposes, and we make use of, seven levels of logging as outlined below in descending order


LevelDescriptionSEVEREA critical error has occurred from the perspective of the agent. Critical errors are non-recoverable errors and require immediate attention. An example would be a critical problem when initializing the agent that would prevent it from starting or functioning properly.WARNINGDenotes an abnormal or unexpected result occurred that is recoverable, from the perspective of the agent. An example would include a failure while changing the tools release of an E1 server. It is a significant problem, however, the agent will recover so is considered a warning.INFODenotes informative messages providing contextual information as to what the agent is doing. An E1 server that is started using SM would have a log message indicating so at the INFO level.CONFIGNot commonly used in SM, a message at the configuration level is simply a means for logging information particular to that installation, such as the platform of the server.FINEA lower level message still intended as human readable that provides insight into what the agent is doing. This can be thought of as a standard "debug" message.FINERAn even lower level trace of debug message. Messages are classified at this level rather than FINE if they are very frequently occurring and either less likely to be of interest. FINESTThe lowest level of logging. These messages may be very frequent, verbose, or cryptic and may only be meaningful to Oracle development.
The division between SEVERE and WARNING is a little muddy. You may see messages that appear as SEVERE that really should be qualified as WARNING based on the above descriptions, and less frequently there may be a WARNING message that should have been classified as SEVERE.

The default logging level for the agent is FINE, which should be fine for nearly all troubleshooting needs. The agent is much less verbose than some of the other E1 products. Keeping the logging level at FINE, FINER, or even FINEST will have negligible impact on performance. There just aren't that many messages emitted to cause a problem.
Agent Log Location
The agent log files are located in the directory <agent_install>logs, where <agent_install> refers to the install location supplied during the managed home installer. The log files are named e1agent_#.log. The logging mechanism will automatically split log files into approximately 10 MB chunks, and up ten log files will be retained. That means the most amount of disk space needed for the agent logs is 100 MB. The '#' in the log name is the index of the log file with zero being the most recent and nine being the oldest. When the current log file, e1agent_0.log, reaches approximately 10 MB the last chunk (e1agent_9.log) will be deleted and all the log files will be renamed with the index incremented. The e1agent_0.log is now e1agent_1.log and a new e1agent_0.log file will be created. Another file, 'e1agent_0.log.lck' may also be present. This file is created by Java as a lock file and may be ignored.

The log files for the agent may be viewed directly through the management console directly. From the management dashboard (start page) select the managed home of interest.
At the bottom of the page for the selected managed home is a log files section.
Selecting a log file will transfer the log from the remote machine to the management console so it may be viewed using the integrated log viewer, as shown below.
Each log message consists of two or more lines. The first line contains the timestamp, originating java class, and the name of the current method from which the message was written. The second line (or multiple lines) contains the actual log message.
Changing Logging Levels

The default level for agent logging is FINE, which is appropriate for most occasions. It may be desirable to change the level to FINER or FINEST to troubleshoot an issue, or move it to a higher level, such as INFO, for some reason. If the agent is running and connected to a management console you may change the level directly from the console. Located on the left hand side of the page for the management agent is a section entitled 'Managed Home Details'. In there is a dropdown for 'Agent Log Level'. The current value will be shown.

To change the level simply select the desired log level from the drop down list. The change will immediately take effect. Changing the log level through this dropdown is not permanent; when the agent is restarted it will resume logging at the FINE level.
If you wish to permanently change the logging level, or you will to set the level to something other than FINER during agent startup, you may add the following line to the <agent_install>/config/agent.properties file.

log.level=FINER

You may use any of the log levels mentioned in the table above, or OFF to prevent all logging.

I do not recommend permanently keeping the log level at OFF, SEVERE, WARNING, CONFIG, or INFO. You never know when you may need the additional information provided by the FINE level. The agent will automatically remove old log files so there should be no concern of log files filling a disk.

Embedded Agent Logging

The E1 enterprise server and E1 HTML server all contain variants of the management agent. In the embedded form the logging messages generated by the management agent are not typically logged. It may be desired to enable the same logging for the embedded management agents. To do so simply add the following line to the <agent_install>/config/agent.properties file.

log.embedded.instances=true

After adding this line and restarting the E1 managed instance series of log files will appear in the <agent_install>/logs directory. The filename of the log files will be the instance name of the E1 server.

It is very rare to need to enable this logging; that said it may be useful to troubleshoot why the embedded agents may not be communicating with the management console.

This form of logging is not available to an E1 web server if it is deployed to a federated (e.g. network deployment) node in IBM WebSphere.
Final Thoughts

Stack Traces: some log messages may contain stack traces. This information is useful for identifying the source of the message. A stack trace is not always indicative of a problem. The level of the message is much more indicative. Stack traces for INFO, FINE, FINER, or FINEST messages are included to provide more information and is not an error.

Make Rails database migrations faster on Oracle

Raimonds Simanovskis - Fri, 2008-01-25 16:00

When using Ruby on Rails on Oracle I noticed that my database migration tasks are much slower than on MySQL.

I just found the cause for that – rake db:schema:dump task was taking very long time on my Oracle databases (and this task is executed at the end of rake db:migrate). As a result of this task Oracle Rails adapter is executing

SELECT LOWER(table_name) FROM user_tables

statement. If your database contains a lot of other schemas with a lot of tables (as in my case I deploy Rails user schema in Oracle E-Business Suite database) then this statement is quite slow (it took more than 10 seconds in my case).

As all Rails tables are located in Rails user schema then you can get the same result with

SELECT LOWER(table_name) FROM all_tables WHERE owner = SYS_CONTEXT('userenv','session_user')

which now executes much faster than original statement.

So you can make the following patch for Oracle Rails adapter to make this change

module ActiveRecord
  module ConnectionAdapters
    class OracleAdapter
      def tables(name = nil)
        select_all("select lower(table_name) from all_tables where owner = sys_context('userenv','session_user')").inject([]) do | tabs, t |
          tabs << t.to_a.first.last
        end
      end
    end
  end
end

and include it in environment.rb file or in some separate patch file which you load at Rails startup.

P.S. I have published all my patches for Oracle Rails 2.0 adapter. You can download this file, place it in Rails application lib directory and then just include

require "oracle_adapter_20_patch"

in your environment.rb file. Look at comments in this file to find out what each patch is doing.

Categories: Development

Server Manager Logging - Part 2

Mark Vakoc - Fri, 2008-01-25 14:32
Part 2 in this series about the Server Manager logs will be a short one and is all about the log files created when installing a management agent. I've already posted an article Troubleshooting Agent Communications that covers in detail the troubleshooting process for a successfully installed agent that refuses to communicate and appear in the management console. This article will simply look at the installation logs created by the management agent installer.
In a future post I'll get to the good stuff -- the log files created by a running management agent. That will be where you'll wan to look for troubleshooting most issues in Server Manager.
The Management Agent Installer

During the running of the installation program the log file created, named smha_is_install.log, is located in platform specific temporary directory. The

InstallShield installer creates a temporary directory named something like 'ismp01' underneath the system temporary directory. On UNIX based platforms and the iSeries this temporary location is usually /tmp and on Windows the temporary directory is identified by the %TMP% environment variable, usually Documents and SettingsusernameLocal Settingstemp.

After the installation is complete the smha_is_install.log is copied to the installation location supplied during the installation wizard.

Compared to the installer for the management console discussed in part one of this series the management agent installer is very trivial. The installer is responsible for performing the following:

  • Creating the managed home directory structure
  • Installing the Java based managed home agent and any configuration it needs
  • Creating the Windows service used to start and stop the agent [Windows only]
  • Creating the startup and shutdown scripts
  • Installing the Java JDK used by the managed home agent
  • Installing the Oracle Configuration Manager agent [non-iSeries platforms]
The installer itself is actually quite dumb. The installer program does not actually contain any of the components it will install; instead it obtains the components to install directly from the management console. This is the reason the management console must be running at the time the management agent is installed.
So let's take a look at the smha_is_install.log from a Linux installation to see what is going on. After prompting for the management console name and HTTP port the installer will retrieve a list of items that need to be downloaded/installed. If the supplied server name or port are wrong, or the management console is not running, you will see an error here and the user will be re-prompted for valid credentials. Upon successful connection to the console you will see something like:

(Jan 25, 2008 12:53:44 PM), Install, com.ibm.wizard.platform.linux.LinuxProductServiceImpl, msg1, installing Get Scf File List (getScfList)
(Jan 25, 2008 12:53:44 PM), Install, com.oracle.e1.install.scfha.ISMP.product.GetScfFileList, dbg, Connection opened: http://denlcmwn5.mlab.jdedwards.com:7000/manage/agents/Linux/i386/2.6.9-42.ELsmp?serviceId=null
(Jan 25, 2008 12:53:44 PM), Install, com.oracle.e1.install.scfha.ISMP.product.GetScfFileList, dbg, Writing http://denlcmwn5.mlab.jdedwards.com:7000/manage/agents/Linux/i386/2.6.9-42.ELsmp?serviceId=null to /u02/jdedwards/agentdemo/List.txt as text
(Jan 25, 2008 12:53:44 PM), Install, com.ibm.wizard.platform.linux.LinuxProductServiceImpl, dbg.install, JVM memory after installing Get Scf File List (getScfList): free=5134496 total=17588224
The list of components to be downloaded are saved as a text file to <agent_install>/List.txt. The contents of the file will vary slightly for each platform. The next step is to download and extract the components contained within.

(Jan 25, 2008 12:53:44 PM), Install, com.installshield.scfha.event.InstallScript, dbg, Entering Function : Expand Remote Jars
(Jan 25, 2008 12:53:44 PM), Install, com.installshield.scfha.event.InstallScript, dbg, Expand Remote Jars : File List to download:/u02/jdedwards/agentdemo/List.txt
(Jan 25, 2008 12:53:44 PM), Install, com.installshield.scfha.event.InstallScript, dbg, Expand Remote Jars : Destination :/u02/jdedwards/agentdemo
(Jan 25, 2008 12:53:44 PM), Install, com.installshield.scfha.event.InstallScript, dbg, Extracting remote jar 'http://denlcmwn5.mlab.jdedwards.com:7000/manage/scfagent/scfagent.jar?serviceId=null' to '/u02/jdedwards/agentdemo'
(Jan 25, 2008 12:53:45 PM), Install, com.installshield.scfha.event.InstallScript, dbg, Copying remote file : http://denlcmwn5.mlab.jdedwards.com:7000/manage/agent/config/agent.properties?serviceId=null
(Jan 25, 2008 12:53:45 PM), Install, com.installshield.scfha.event.InstallScript, dbg, Header Field: attachment; filename=config/agent.properties
(Jan 25, 2008 12:53:46 PM), Install, com.installshield.scfha.event.InstallScript, dbg, Extracting remote jar 'http://denlcmwn5.mlab.jdedwards.com:7000/manage/agent/ccr/ccr-Production-10.2.5.0.0-Linux.zip?serviceId=null' to '/u02/jdedwards/agentdemo'
(Jan 25, 2008 12:53:48 PM), Install, com.installshield.scfha.event.InstallScript, dbg, Extracting remote jar 'http://denlcmwn5.mlab.jdedwards.com:7000/manage/agent/jdks/linux_jdk.jar?serviceId=null' to '/u02/jdedwards/agentdemo'
(Jan 25, 2008 12:54:01 PM), Install, com.installshield.scfha.event.InstallScript, dbg, Copying remote file : http://denlcmwn5.mlab.jdedwards.com:7000/manage/agent/agent-misc/linux/bin/startAgent?serviceId=null
(Jan 25, 2008 12:54:01 PM), Install, com.installshield.scfha.event.InstallScript, dbg, Header Field: attachment; filename=bin/startAgent
(Jan 25, 2008 12:54:01 PM), Install, com.installshield.scfha.event.InstallScript, dbg, Copying remote file : http://denlcmwn5.mlab.jdedwards.com:7000/manage/agent/agent-misc/linux/bin/stopAgent?serviceId=null
(Jan 25, 2008 12:54:01 PM), Install, com.installshield.scfha.event.InstallScript, dbg, Header Field: attachment; filename=bin/stopAgent
(Jan 25, 2008 12:54:01 PM), Install, com.installshield.scfha.event.InstallScript, dbg, Copying remote file : http://denlcmwn5.mlab.jdedwards.com:7000/manage/agent/agent-misc/linux/bin/restartAgent?serviceId=null
(Jan 25, 2008 12:54:01 PM), Install, com.installshield.scfha.event.InstallScript, dbg, Header Field: attachment; filename=bin/restartAgent
(Jan 25, 2008 12:54:01 PM), Install, com.installshield.scfha.event.InstallScript, dbg, Copying remote file : http://denlcmwn5.mlab.jdedwards.com:7000/manage/agent/agent-misc/rte.jacl?serviceId=null
(Jan 25, 2008 12:54:02 PM), Install, com.installshield.scfha.event.InstallScript, dbg, Header Field: attachment; filename=bin/rte.jacl
The remaining steps performed by the installer are related to setting some permissions on the installed JDK (UNIX based platforms) and to start the management console. On windows you would see an additional step to invoke the installManagementAgent.bat script to create the Windows service for the managed home agent.
The final step is to remove the List.txt file downloaded earlier and start up the managed home agent. Pretty simple, eh?

Server Manager Logging - Part 1

Mark Vakoc - Thu, 2008-01-24 17:35
Server Manager has log files. A lot of 'em in fact. There, I said it.

So where do you go when something in SM isn't working just right? We spent considerable time attempting to log often and use meaningful messages within SM. That said it is a distributed architecture with components contained on the console machine, agents installed on remote machines, and more agents built into the E1 products themselves. This post will help you identify which logs you should be looking at, where they are, how to configure them, and what to look for. For the sake of being able to finish the article eventually I'll just focus on the SM logs.

Throughout this post I'll be referring to some common paths.
<console_install> - Refers to the location supplied during the installation of the management console.

Installation Logs - Management Console

We begin with looking at the log files generated during the installation of the management console. These can be helpful if there are problems installing the management console application. Once the console is successfully installed and you are able to sign-in to the web application these logs are no longer relevant for any purpose and may be removed, if desired.

The management console is installed using an InstallShield based installer. This installer is responsible for creating the <console_install> directory, extracting all the component files that make up SM, configuring the integrated J2EE server, and deploying the management console web application.

The primary log created by the installer is located in <console_install>logssmmc_install.log. This is the first place you should look if you are having problems installing the management console. This log will probably go down as the most cryptic of the log files to analyze but somewhere in there is good information. One thing to note is if something goes wrong during the installation the installer will roll back the changes already made. This may result in error messages and other possibly confusing messages in the log file. In the case of a failed installation you want to find the first thing that went wrong in the log file before it started rolling back the installation.

The bulk of the messages in the smmc_install.log file will detail the extraction of files from the installer application to the <console_install> location. Near the end the installer performs the configuration of the J2EE container and deploys the management console application. The first task is to configure the administrative user for the J2EE container using the credentials provided during the installer wizard. The smmc_install.log will contain the following lines:

(Jul 31, 2007 12:40:14 PM), Install, com.installshield.wizard.platform.win32.Win32ProductServiceImpl, dbg.install, JVM memory before installing Exec Action (execJaznJar): free=9241864 total=23748608
(Jul 31, 2007 12:40:14 PM), Install, com.installshield.wizard.platform.win32.Win32ProductServiceImpl, msg1, installing Exec Action (execJaznJar)
(Jul 31, 2007 12:40:16 PM), Install, com.installshield.wizard.platform.win32.Win32ProductServiceImpl, dbg.install, JVM memory after installing Exec Action (execJaznJar): free=9833152 total=23748608

At the same time two new log files will appear in <console_install>logs: jazn_stdout.log and jazn_stderr.log. These are the stdout and stderr output from running commands contained in the jazn.jar java application delivered with the J2EE container. The stderr file should be empty. Any content in the file is indicative of an error and will cause the installation to fail. If the jazn_stderr.log file is not empty you should investigate the cause of any errors detailed within.

The next step performed is to install the Windows service used to start and stop the management console. This is performed by running the delivered script <console_install>bininstallManagementConsoleService.bat. The following lines in the smmc_install.log file indicate when this batch file is called:

(Jul 31, 2007 12:40:16 PM), Install, com.installshield.wizard.platform.win32.Win32ProductServiceImpl, dbg.install, JVM memory before installing Exec Action (execInstService): free=9809880 total=23748608
(Jul 31, 2007 12:40:16 PM), Install, com.installshield.wizard.platform.win32.Win32ProductServiceImpl, msg1, installing Exec Action (execInstService)
(Jul 31, 2007 12:40:17 PM), Install, com.installshield.wizard.platform.win32.Win32ProductServiceImpl, dbg.install, JVM memory after installing Exec Action (execInstService): free=9552496 total=23748608
(Jul 31, 2007 12:40:17 PM), Install, com.installshield.scfmc.event.InstallScript, msg1, Beginning the onInstalledOc4jExecComp method.

The installManagementConsoleService.bat creates a log file named <console_install>logsinstallManagementConsole.log. The contents will look something like:

[2008-01-24 14:50:41] [1206 prunsrv.c] [debug] Procrun log initialized
[2008-01-24 14:50:41] [496 prunsrv.c] [debug] Installing service...
[2008-01-24 14:50:41] [info] Service SCFMngmtConsole3 name SCF Management Console [D:servermanagerdemosystem] - SCFMngmtConsole3
[2008-01-24 14:50:42] [538 prunsrv.c] [debug] Setting service description SCF Management Console
[2008-01-24 14:50:42] [info] Service SCFMngmtConsole3 installed
[2008-01-24 14:50:42] [info] Procrun finished.

Now that the J2EE server has been configured with the administrative password and the Windows service created its time to start the container. The batch file <console_install>binstartManagementConsole.bat is invoked and you will see lines along the lines of:

(Jul 31, 2007 12:40:17 PM), Install, com.installshield.scfmc.event.InstallScript, msg1, Command to run is: d:servermanagerdemosystem/bin/startManagementConsole.bat
(Jul 31, 2007 12:40:20 PM), Install, com.installshield.scfmc.event.InstallScript, msg1, Return code is: 0

The output of the startManagementConsole.bat is written to the log file <console_install>logsMCDeploy_stdout.log. The first two lines of the file will contain something like:

The SM Management Console [D:servermanagerdemosystem] - SCFMngmtConsole4 service is starting.
The SM Management Console [D:servermanagerdemosystem] - SCFMngmtConsole4 service was started successfully.

It may take a while for the J2EE container to fully start up. To ensure the container is actually running before the management console application is deployed the installer will repeatedly run a command line program that will check if the server is actually running. You will see this in the log file:

(Jul 31, 2007 12:40:30 PM), Install, com.installshield.scfmc.event.InstallScript, msg1, Command to run is: d:servermanagerdemosystem/jdk/bin/java.exe -jar d:servermanagerdemosystem/targets/oc4j/j2ee/home/admin_client.jar deployer:oc4j:localhost:24795 oc4jadmin ******** -validateURI
(Jul 31, 2007 12:41:24 PM), Install, com.installshield.scfmc.event.InstallScript, msg1, Return code is: 0

The installer will be looking for a success message emitted by the program run. If not found it will wait a bit and re-run the command, eventually giving up. The responses are appended to the MCDeploy_stdout.log. The success message looks like

URI deployer:oc4j:localhost:24795 is valid and connected

Once the J2EE container is validated as running the management console application is deployed to it. The deployment is performed through a command line program, the running of which is shown below:


(Jul 31, 2007 12:41:24 PM), Install, com.installshield.scfmc.event.InstallScript, msg1, Command to run is: d:servermanagerdemosystem/jdk/bin/java.exe -jar d:servermanagerdemosystem/targets/oc4j/j2ee/home/admin_client.jar deployer:oc4j:localhost:24795 oc4jadmin ******** -deploy -file d:servermanagerdemosystem/_stage/ManagementConsole_WAR.ear -deploymentName ManagementConsole -bindAllWebApps
(Jul 31, 2007 12:42:00 PM), Install, com.installshield.scfmc.event.InstallScript, msg1, Return code is: 0
(Jul 31, 2007 12:42:00 PM), Install, com.installshield.scfmc.event.InstallScript, msg1, Deployment succeeded for MC.

The output of the deployment operations are also appended to MCDeploy_stdout.log and should look something like:


07/07/31 12:41:26 Notification ==>Uploading file ManagementConsole.ear ...
07/07/31 12:41:26 Notification ==>Uploading file ManagementConsole.ear ...
07/07/31 12:41:27 Notification ==>Uploading file ManagementConsole.ear ...
07/07/31 12:41:27 Notification ==>Uploading file ManagementConsole.ear ...
07/07/31 12:41:27 Notification ==>Uploading file ManagementConsole.ear ...
07/07/31 12:41:27 Notification ==>Uploading file ManagementConsole.ear ...
07/07/31 12:41:28 Notification ==>Uploading file ManagementConsole.ear ...
07/07/31 12:41:28 Notification ==>Uploading file ManagementConsole.ear ...
07/07/31 12:41:28 Notification ==>Uploading file ManagementConsole.ear ...
07/07/31 12:41:29 Notification ==>Uploading file ManagementConsole.ear ...
07/07/31 12:41:29 Notification ==>Uploading file ManagementConsole.ear ...
07/07/31 12:41:29 Notification ==>Uploading file ManagementConsole.ear ...
07/07/31 12:41:29 Notification ==>Uploading file ManagementConsole.ear ...
07/07/31 12:41:30 Notification ==>Uploading file ManagementConsole.ear ...
07/07/31 12:41:30 Notification ==>Uploading file ManagementConsole.ear ...
07/07/31 12:41:30 Notification ==>Uploading file ManagementConsole.ear ...
07/07/31 12:41:30 Notification ==>Uploading file ManagementConsole.ear ...
07/07/31 12:41:31 Notification ==>Uploading file ManagementConsole.ear ...
07/07/31 12:41:31 Notification ==>Uploading file ManagementConsole.ear ...
07/07/31 12:41:31 Notification ==>Uploading file ManagementConsole.ear ...
07/07/31 12:41:31 Notification ==>Uploading file ManagementConsole.ear ...
07/07/31 12:41:32 Notification ==>Uploading file ManagementConsole.ear ...
07/07/31 12:41:32 Notification ==>Uploading file ManagementConsole.ear ...
07/07/31 12:41:32 Notification ==>Uploading file ManagementConsole.ear ...
07/07/31 12:41:33 Notification ==>Uploading file ManagementConsole.ear ...
07/07/31 12:41:33 Notification ==>Uploading file ManagementConsole.ear ...
07/07/31 12:41:33 Notification ==>Application Deployer for ManagementConsole STARTS.
07/07/31 12:41:33 Notification ==>Copy the archive to D:servermanagerdemosystemtargetsoc4jj2eehomeapplicationsManagementConsole.ear
07/07/31 12:41:33 Notification ==>Initialize D:servermanagerdemosystemtargetsoc4jj2eehomeapplicationsManagementConsole.ear begins...
07/07/31 12:41:33 Notification ==>Unpacking ManagementConsole.ear
07/07/31 12:41:34 Notification ==>Done unpacking ManagementConsole.ear
07/07/31 12:41:35 Notification ==>Unpacking ManagementConsole_WAR.war
07/07/31 12:41:44 Notification ==>Done unpacking ManagementConsole_WAR.war
07/07/31 12:41:44 Notification ==>Initialize D:servermanagerdemosystemtargetsoc4jj2eehomeapplicationsManagementConsole.ear ends...
07/07/31 12:41:44 Notification ==>Starting application : ManagementConsole
07/07/31 12:41:44 Notification ==>Initializing ClassLoader(s)
07/07/31 12:41:44 Notification ==>Initializing EJB container
07/07/31 12:41:44 Notification ==>Loading connector(s)
07/07/31 12:41:44 Notification ==>Starting up resource adapters
07/07/31 12:41:44 Notification ==>Initializing EJB sessions
07/07/31 12:41:44 Notification ==>Committing ClassLoader(s)
07/07/31 12:41:44 Notification ==>Initialize ManagementConsole_WAR begins...
07/07/31 12:41:44 Notification ==>Initialize ManagementConsole_WAR ends...
07/07/31 12:41:44 Notification ==>Started application : ManagementConsole
07/07/31 12:41:44 Notification ==>Binding web application(s) to site default-web-site begins...
07/07/31 12:41:44 Notification ==>Binding ManagementConsole_WAR web-module for application ManagementConsole to site default-web-site under context root /manage
07/07/31 12:41:45 Notification ==>Initializing Servlet: com.jdedwards.mgmt.web.ConsoleInit for web application ManagementConsole_WAR
07/07/31 12:41:58 Notification ==>Initializing Servlet: oracle.cabo.servlet.UIXServlet for web application ManagementConsole_WAR
07/07/31 12:41:59 Notification ==>Binding web application(s) to site default-web-site ends...
07/07/31 12:41:59 Notification ==>Application Deployer for ManagementConsole COMPLETES. Operation time: 25813 msecs

Any errors or problems that occur during the startup, running validation, and deployment will appear in the log file <console_install>logsMCDeploy_stderr.log. The installer will check if there are any errors contained within this file and if so terminate and rollback the installation, as shown below:


(Jul 31, 2007 12:42:00 PM), Install, com.installshield.wizard.platform.win32.Win32ProductServiceImpl, msg1, installing Log File Error Check (logFileErrCheck)
(Jul 31, 2007 12:42:00 PM), Install, com.oracle.e1.install.common.ISMP.product.LogFileErrorCheck, msg1, Beginning stderr log checks.
(Jul 31, 2007 12:42:00 PM), Install, com.oracle.e1.install.common.ISMP.product.LogFileErrorCheck, msg1, Checking for errors in: D:servermanagerdemosystemlogsMCDeploy_stderr.log
(Jul 31, 2007 12:42:00 PM), Install, com.oracle.e1.install.common.ISMP.product.LogFileErrorCheck, msg1, No errors in the stderr logs, continuing the installation.


In case you forgot the information you entered, such as the HTTP port to use for the management console, a readme.txt file is created in the <console_install> directory. After creating the readme.txt file the installation is essentially complete.

Next Time

Now that we have the management console installed it's time to start installing some management agents, and looking at their log files.

DR-Setup....

Ayyappa Yelburgi - Thu, 2008-01-24 01:25
Architecture Database Synchronization Options Setup No-Data-Divergence Setup Primary Database Setup Standby Database Start Managed Standby Recovery Protect Primary Database Cancel Managed Standby Recovery Activating A Standby Database Backup Standby Database Database Switchover Database Failover Automatic Archive Gap Detection Background Managed Recovery Delayed Redo ayyudbahttp://www.blogger.com/profile/00046200352601718598noreply@blogger.com284

DR-Setup....

Ayyu's Blog - Thu, 2008-01-24 01:25
Categories: DBA Blogs

How to shrink Oracle Context Index

Pawel Barut - Wed, 2008-01-23 14:50
On of databases I've found that one of Context Indexes is getting bigger and bigger everyday. It was around 5-10% grow per day for table DR$MY_TEXT_I$I which contains tokens(word). No of records indexed was almost the same, but index grown was unexpectedly big. It was due fact, that quite many rows were modified every day, and it caused re-indexing those rows during index synchronization (CTX_DDL.SYNC_INDEX). So I've decided to reclaim this space.
Method 1.This was my first though:
  • Drop Index ... /Create Index ...
  • or Alter Index ... Rebuild
But those methods have some disadvantages:
  • Users cannot perform text searches during this operation,
  • It does not solve problem for longer time, as index will still grow ...
So I had to find root cause and eliminate it.
Method 2.While looking for root cause I've find out, that Index has never been optimized, so it kept old (obsolete) data. My solution was:
SQL> exec ctx_ddl.optimize_index('MY_TEXT_I', 'FULL', 120);
SQL> alter table DR$MY_TEXT_I$I enable row movement;
SQL> alter table DR$MY_TEXT_I$I shrink space cascade;

With this method table DR$MY_TEXT_I$I took 30% of its original size.
So let me explain why this worked. With ctx_ddl.optimize_index context index was internally optimized. It means information about old documents were completely deleted and index was internally minimized. Remember - third parameter limits time (in minutes) allowed for optimization. If it is really big index it can take hours. But you can run this optimization many times, until your index will be fully optimized.
Then I've just shrunk table (shrink space cascade). But this operation requires to enable row movement on table first.

But this was one time operation. To avoid this problem in future I've scheduled job to run ctx_ddl.optimize_index on regular basis. Now this table has grown a little, but is no longer growing so fast.

Foot note:
  • It was tested on Oracle EE 10gR2 (10.2.0.3),
  • I'm not sure if row movement is supported by Oracle for Context Index table DR$<index>$I. It worked for me and I did not experience any problems since turning it on.


Cheers, Paweł
Categories: Development

Publishing Gadgets

Oracle EPM Smart Space - Wed, 2008-01-23 11:24

In the world of Gadgets and Widgets getting a new gadget is as simple as downloading and installing one from a Gadget site, message board or blog. This is great for making a framework pervasive but would wreak havoc on the complex IT communities that implement EPM or BI solutions. Security is an obvious concern but also the idea of maintaining and understanding what users have installed becomes impossible in a scenario like this. When designing Smart Space we often argued this topic wanting to keep idea of gadgets open and pervasive while maintain control for customers. This is how the idea of Gadget publishing came to be.

Gadget publishing gives an administrator the ability to control what gadgets his or her users can download and install. It also allows the administrator to recommend gadgets to users giving administrators some assurance as to what gadgets are installed on a user desktop. Gadget publishing is done using the same technology we use to deploy and maintain the Smart Space client (often referred to as the framework); Click Once. Going into details on Click Once would warrant an additional post, so I will keep it short for now. Click Once helps to provide a safe and secure environment for users to download and install the gadgets while providing automatic updates. The gadgets are also digitally signed with a certificate so users will be assured of their safety when installing.

I am a simple guy so I will put this is simple terms. When Smart Space is installed in an environment the administrator essentially runs a 'store' where they will maintain an inventory of gadgets or other components. The users can go to this store and download from the 'stores' inventory with confidence.

Here is how it is done. The administrator will first have to install the Smart Space Administration Utility. This utility will probably only be installed by one or two people and does require administrative privileges to install. The installation files for this get laid down when the Smart Space server is installed and can be usually accessed from the following URL: http://[ServerName]:17080/SmartSpace/Installations/AdminUtility/Setup.msi. (For installation and setup help check out the Administrator's Guide for Smart Space) Once installed and configured you should be able to open the administration utility and get to the Sign & Publish tab.

From this tab you can do the following; publish or remove the framework (Smart Space client), publish or remove gadgets, download already published gadgets, sign gadgets, etc. Most of the time you are going to just sign and publish gadgets; but if this is a first time installation you will probably sign and publish the framework and the gadgets. In either case the process is the same but it is key to make sure the framework is properly published otherwise users will not be able to get any gadgets. The utility should be pretty self explanatory and there is plenty of help in the Administrator's guide but I will run through the steps for publishing a gadget.

  • From the Sign & Publish tab click Add.
  • Browse for a framework or gadget file to publish. (.SmartSpaceGadget or .SmartSpaceFramework)

    These files are compressed files with all the bits needed for the Click Once installations and deployments. An administrator will find the framework and default gadgets in the directory where they installed the Administration Utility (usually C:\Program Files\Oracle EPM\Oracle EPM Smart Space Administration Utility).
  • Once on the list from the action dropdown verify that it says Publish.
  • Click Apply.

This will move the gadget file to the server and place all the bits in the correct location so that users will see it as available to them in the Smart Space palette on their client.

To summarize, gadgets can be a great end user tool but in the world on enterprise software there needs to be some level of control.

Categories: Development

LOG_ARCHIVE_DEST_n

Ayyappa Yelburgi - Tue, 2008-01-22 21:28
Syntax LOG_ARCHIVE_DEST_[1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10] = "null_string" | ((SERVICE=service | LOCATION=location) [AFFIRM | NOAFFIRM] [ALTERNATE=destination | NOALTERNATE] [ARCH | LGWR] [DELAY[=minutes] | NODELAY] [DEPENDENCY=destination | NODEPENDENCY] [MANDATORY | OPTIONAL] [MAX_FAILURE=count | NOMAX_FAILURE] [QUOTA_SIZE=blocks | NOQUOTA_SIZE] [QUOTA_USED=blocks | NOQUOTA_USED] [ayyudbahttp://www.blogger.com/profile/00046200352601718598noreply@blogger.com7

LOG_ARCHIVE_DEST_n

Ayyu's Blog - Tue, 2008-01-22 21:28
Categories: DBA Blogs

Data Guard 9i Log Transportation on RAC

Ayyappa Yelburgi - Tue, 2008-01-22 21:23
PURPOSE-------This article gives an overview about how to create a Data Guard Configuration on Real Application Clusters (RAC). The Configurationyou can find here is for a Physical Standby Database. SCOPE & APPLICATION-------------------You can see which initialisation parameters you have to use / changeand how the Log Transport is organized in a RAC-DataGuard environment. NOTE: The Data Guard ayyudbahttp://www.blogger.com/profile/00046200352601718598noreply@blogger.com6

Data Guard 9i Log Transportation on RAC

Ayyu's Blog - Tue, 2008-01-22 21:23
Categories: DBA Blogs

Pages

Subscribe to Oracle FAQ aggregator