32-bit to 64-bit database migration tips: OLAP upgrade

A while ago, I had the opportunity to migrate an E-Business Suite database (Apps version 12.0.4, database version 10.2.0.4) from 32-bit Linux to 64-bit Linux. It's a straightforward process, outlined in My Oracle Support Note 471566.1: Migrating Oracle E-Business Suite R12 from Linux 32-bit to Linux 64-bit. Performing one of the critical migration steps, upgrading OLAP analytical workspaces (AWs), requires some careful reading, starting with the primary migration document for the database tier: Note 456197.1: Using Oracle E-Business Suite Release 12 with a Database Tier Only Platform on Oracle 10g Release 2. This document directs you to Note 352306.1: Upgrading OLAP from 32 to 64 bits, which covers the migration process for OLAP workspaces: export and delete from the the 32-bit system, then recreate on the 64-bit system and import the contents. The remainder of this blog post includes some embellishment of those four steps, from my migration notes. Examples were recreated on my test database; please don't look for these workspace names in an actual EBS database.

Please note that I'm by no means an OLAP expert; if you have your own observations or experiences to share, including corrections to any errors I might have made, please leave a comment. The last thing I want to do is spread misinformation! And, as always, remember: test systems exist for a reason, and instructions from Oracle Support should trump anything you read in this blog entry :-)

"No objects to export" error when exporting AWs

The export process is explained thoroughly in Note 352306.1. You may encounter the following error, however, when attempting to export an empty workspace:

BEGIN dbms_aw.execute('export all to eif file ''EXPORT_DIR/AWTEST.eif'''); END;
*
ERROR at line 1:
ORA-33390: There are no objects to export.
ORA-06512: at "SYS.DBMS_AW", line 93
ORA-06512: at "SYS.DBMS_AW", line 122
ORA-06512: at line 1

An export file will not be created, since there's no data in the workspace. Nonetheless, you will still need to recreate the AW in the 64-bit database, which leads us to the next section...

Before deleting AWs

In addition to gathering the OLAP workspace's name, schema, and tablespace, make sure that you make a note of how the AW is partitioned. This will allow you to more faithfully reconstruct the AW in the 64-bit database. Again, the basics can be found in Note 352306.1, except for a discussion of workspace partitioning. According to the documentation for DBMS_AW.AW_CREATE, by default, analytic workspaces are created with 8 partitions. Querying dba_segments seemed to tell a different story:

SYSTEM@mactest(10.2.0.4)>select segment_name
2    , segment_type
3    , count(*)
4   from dba_segments
5   where segment_name= 'AW$TESTDEFAULT'
6   group by segment_name
7   , segment_type;

SEGMENT_NAME                   SEGMENT_TYPE           COUNT(*)
------------------------------ -------------------- ----------
AW$TESTDEFAULT                 TABLE SUBPARTITION           16

This initially confused me, until I found that the table created for the default workspace is actually comprised of two partitions, each comprised of 8 subpartitions. Apparently, "partition" means different things to different people:

SYSTEM@mactest(10.2.0.4)>select table_name
2  , partition_name
3  , subpartition_count sub
4  from all_tab_partitions
5  where table_name = 'AW$TESTDEFAULT';

TABLE_NAME           PARTITION_NAME        SUB
-------------------- -------------- ----------
AW$TESTDEFAULT       PTN1                    8
AW$TESTDEFAULT       PTNN                    8

So, before you delete the AWs in the 32-bit database, be sure to consult the data dictionary. In most cases, you'll probably see segment count of 16 in dba_segments (implying a default partitioning scheme). But there are exceptions...

There's always one goofball

One of those exceptions came when my query to get a count of AW segments returned a 1. Naturally, I was expecting an even number, so this came as a surprise. At first, I thought this might be a special case when specifying partnum=>1 when creating the workspace:

SYSTEM@mactest(10.2.0.4)>exec dbms_aw.aw_create('JPTEST.TEST1PART','USERS',1);
PL/SQL procedure successfully completed.

SYSTEM@mactest(10.2.0.4)>select segment_name
2  , segment_type
3  ,count(*)
4  from dba_segments
5  where segment_name = 'AW$TEST1PART'
6  group by segment_name
7  , segment_type
8  /

SEGMENT_NAME                   SEGMENT_TYPE           COUNT(*)
------------------------------ -------------------- ----------
AW$TEST1PART                   TABLE SUBPARTITION            2

Then it occurred to me that zero is also a number... ;-)

SYSTEM@mactest(10.2.0.4)>exec dbms_aw.aw_create('JPTEST.TEST0PART','USERS',0);
PL/SQL procedure successfully completed.

SYSTEM@mactest(10.2.0.4)>select segment_name
2  , segment_type
3  ,count(*)
4  from dba_segments
5  where segment_name = 'AW$TEST0PART'
6  group by segment_type
7  , segment_name
8  /

SEGMENT_NAME                   SEGMENT_TYPE           COUNT(*)
------------------------------ -------------------- ----------
AW$TEST0PART                   TABLE                         1

Please recall: Note 352306.1 recommends using the Analytic Workspace Manager (AWM) tool to recreate the AWs in the 64-bit database. If you want to create the AWs manually, I suggest engaging with Oracle Support to get their approval. The preceding examples are provided only for illustration of what's going on when the AW is created.

Importing AWs

I don't really have much to add here, other than:

  1. If you had any empty AWs in the 32-bit system, you won't have anything to import for those workspaces, though hopefully you recreated them in the 64-bit system
  2. Isn't this process the sort of thing that cries out to be scripted? Would I really resort to such cheap, obvious devices to foreshadow my next post? I would indeed!

Keeping OPatch up-to-date: an object lesson

I just did something silly while applying the January 2010 PSU to an 11gR1 ORACLE_HOME, and thought I'd share, in case someone else is Googling for the error message.

[oracle@dbserv patches]$ cd 9209238
[oracle@dbserv 9209238]$ opatch apply

Invoking OPatch 11.1.0.6.2
Oracle Interim Patch Installer version 11.1.0.6.2
Copyright (c) 2007, Oracle Corporation. All rights reserved.

(some OPatch output snipped)

ApplySession failed: Patch ID is null.
System intact, OPatch will not attempt to restore the system

OPatch failed with error code 73

A closer look at the installation prereqs reveals the following statement: "You must use the OPatch utility version 11.1.0.6.7 or later," which I confess that I missed the first time around. D'oh. After installing the latest version of OPatch, the "opatch apply" command worked as expected.

Lessons reinforced:

  1. Even if you think you're up-to-date on prerequisites, triple-checking is a good idea
  2. Even humble tools like the OPatch utility can change pretty frequently
  3. Test systems are useful for testing your patching process, not just patches themselves

(Everyone join in, now: "Thanks, Mr. Obvious, you're a life saver!") :-P

Accessing EBS R12 forms when the HTML interface is unavailable

Astute readers of my last post may have taken a short break from the riveting drama to wonder, "hey, wait, if you couldn't access the EBS home page, how did you change the profile option to fix the EBS home page?" Well, okay, if you've been using Oracle Apps for a while, this is probably not a mystery, but I might have some EBS learners onboard thanks to the ORACLENERD series. For the sake of completeness, I feel compelled to offer this tidbit:

To launch the E-Business Suite R12 Forms interface directly, use the URL http://yourhost:port/forms/frmservlet. This will present a small login window where you can provide your EBS credentials. After that, you will need to select your responsibility from a list of values, and the appropriate forms menu will appear. A few additional things to consider:

  • This method of accessing Forms is primarily intended to verify that the Forms server is functioning properly. Oracle does not recommend (or support) direct access to Forms as a normal mode of operation. Use sparingly, as a last resort.
  • You need to supply login credentials for a user that has permission to authenticate locally to Oracle Applications. This is not normally a big deal, since it's the default configuration, but if your EBS instance is integrated with Single Sign-On, be aware that you can't connect to Forms directly with an SSO-only account.
  • If your HTML interface is broken, as mine was, selecting an option from the Forms-based menu that would normally launch the HTML interface is likely to produce disappointing results.

Despite Oracle's warning to not use the Forms interface this way without specific guidance from Support, it seemed far better than writing an update statement against the FND_PROFILE_OPTION_VALUES table at 1AM. ;-)

Resolving an EBS login problem

I was asked to investigate an EBS login page failure on a production system last night. Well, actually, I was asked if I had any crazy ideas, since someone else was already working the problem with Oracle Support. Management thought a fresh pair of eyes might help, as the East Coast eyes that had been looking were getting tired. The solution turned out to be somewhat obscure, but I'm throwing it up here in case it helps a desperate, flailing Googler in the future.

Symptoms and observations

  • R12 landing page (Navigator) was returning the dreaded, generic "You have encountered an unexpected error. Please contact the System Administrator for assistance" error.
  • As far as anyone knew, there hadn't been any changes, patches, or service restarts; the system had just spontaneously stopped working. (Don't you just hate that?)
  • SSO and non-SSO logins were authenticating users, but no work could be done because the EBS home page was inaccessible.
  • Web services had already been restarted, to no avail
  • AOL/J diagnostic tests were passing, implying that this wasn't a systemic Java problem

Investigation and resolution

My first thought was that there were corrupt JSPs (probably because I had my last blog post on the brain), but the application server log files were not consistent with that problem. Then I noticed that the other troubleshooters had activated FND Diagnostics, which had the benefit of adding a "Click here for exception details" link. Knowing that this often leads to a mostly-unintelligible (to me, anyway) Java stack trace, I didn't have high hopes, but I had a look. Surprisingly, I found something interesting:

java.lang.NumberFormatException: For input string: "200000000000"
   at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
   at java.lang.Integer.parseInt(Integer.java:459)
   at java.lang.Integer.valueOf(Integer.java:553)
   at oracle.apps.fnd.framework.server.OAUtility.getProfileVoMaxFetchSize(OAUtility.java:245)

So, Java was having trouble chewing on a really large number, and it looks like it was getting that value from a system profile option. A quick look at recently-changed profile options revealed:

applmgr@prodsys:~> sqlplus apps @last_profile_changes
SQL*Plus: Release 10.1.0.5.0 - Production on Wed Jan 20 02:45:27 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Enter value for number_of_items: 4
Profile Option  Option Level  Value           Set on    Scoldee
--------------- ------------- --------------- --------- ---------------
FND: Diagnostic Site          Y               20-JAN-10 SYSADMIN
s
GL Journals: La User          LESS            19-JAN-10 XXXXXX
st Find Window
State
FND: View Objec Site          200000000000    19-JAN-10 XXXXXX
t Max Fetch Siz
e
GL Journals: La User          LESS            19-JAN-10 XXXXXXXX
st Find Window
State

As is often the case, the key part of the phrase, "no changes as far as anyone knew" was the last five words. ;-) That number (200000000000) is several orders of magnitudes larger than typical values of "FND: View Object Max Fetch Size," and after resetting it to something more sane, the system became usable again. Whew!

Compiling JSPs in EBS? Try being selective first.

From time to time, the cached JSP class files used by the E-Business Suite web server can become missing or invalid, resulting in blank pages or "page not found" errors in the EBS HTML interface, or pages not displaying expected behavior. Most often, this occurs after patching or cloning, and the standard advice is to manually recompile all JSPs, either via the adadmin utility or by directly invoking the ojspCompile.pl script from the command line:

[applvis@londo ~]$ $FND_TOP/patch/115/bin/ojspCompile.pl --compile --flush -p 2
logfile set: /u01/ebs/R12VIS/inst/apps/R12VIS_londo/logs/appl/rgf/ojsp/ojspc_error.log
starting...(compiling all)
using 10i internal ojsp ver: 10
synchronizing dependency file:
loading deplist...8048
enumerating jsps...8048
updating dependency...0
initializing compilation:
eliminating children...5979 (-2069)
translating and compiling:
translating jsps...5979/5979 in 8m16s
compiling jsps...5979/5979 in 11m14s
Finished!

20 minutes to compile 6000 JSPs? Even if your system is faster than mine (which it probably is), that's a lot of time and effort for what may be just a few files. If you already know which JSPs are broken, you can save time by using the -s flag to the osjpCompile.pl script to specify just those files.

For example, in early versions of Oracle Applications Release 12, the initial login page was not always created correctly, resulting in failures during post-upgrade validation tests (see My Oracle Support Doc 435550.1).  As far as I know, this condition has been corrected in Release 12.1, and may also have been corrected in 12.0.4, but when we upgraded to 12.0.3, I was able to save 15-20 minutes during my downtime window by selectively compiling the offending JSPs:

[applvis@londo ~]$ $FND_TOP/patch/115/bin/ojspCompile.pl --compile -s 'RF.jsp,AppsLocalLogin.jsp' --flush -p 2
logfile set: /u01/ebs/R12VIS/inst/apps/R12VIS_londo/logs/appl/rgf/ojsp/ojspc_error.log
starting...(compiling all)
using 10i internal ojsp ver: 10
quick compile:
files to compile...2
translating and compiling:
translating jsps...2/2 in 1s
compiling jsps...2/2 in 3s
Finished!

I wish I could say I got to sleep that much earlier, but upgrade weekends don't always work that way. ;-) Still, I was glad to have the time savings.

This isn't always a viable option, of course. Depending on your circumstances, there may be so many JSPs in need of recompilation that trying to be selective isn't worth the effort. If you can see from the application server log files that only a few JSPs are failing, however, then you might be able to save yourself some time, and your users some disruption, by only compiling the files that are necessary to fix the problem.

Hope everyone out there is enjoying a bit of holiday-season relaxation, and that 2010 brings good things. Happy New Year!

Installing EBS on Linux Part 3, companion

This is a companion piece to my third guest post on the ORACLENERD blog about installing Oracle E-Business Suite. I'll try to address questions and errata from that post here, rather than repeatedly asking Chet to tweak his blog just because I was unclear or incorrect. ;-)

What is it with you Linux nerds and your love affair with the command line? Can't I do all this stuff from a GUI?

Well, you could use Enterprise Manager's database control or Grid Control to stop and start the database, and the OAM utility (see the next post in the ORACLENERD series) will allow you to stop and start some services from the GUI. But for the most part, no, you're going to need the command line to perform a lot of the EBS maintenance and administration functions.

Back up the database? It's 200GB. Do you think I'm made of storage or something?

Let's think about this a different way. If you lose the database to corruption or user error, you'll have to reinstall your Apps instance from scratch. If you have that much time on your hands, well, I just moved, and could use some help unpacking. C'mon over. 200GB is a lot of space, but RMAN compressed backups must employ some sort of magical fairy-dust algorithm, because my full compressed backup of the database weighed in at a mere 22GB. That's nearly a 90% compression rate, and smaller than most iTunes libraries. Besides, you weren't just going to keep the EBS install media around forever, were you? Once you free up the space consumed by your staging area, you could fit two backups on that disk. Oh, the luxury!

Okay, smart guy, I'm not a DBA, and now you're telling me I need to learn RMAN in addition to all this other stuff?

Well, yeah. but I'll help you cheat ahead. Here's a very quick RMAN backup script that you can run to back up the the database "cold," i.e. after you've shut it down, then re-mounted it (i.e. 'startup mount,' not 'startup'). I'll assume that you haven't enabled ARCHIVELOG mode yet. If you have, then you probably already know enough DBA-fu to write your own RMAN scripts, too. ;-)

run {
allocate channel d1 device type disk format '/u02/backup/R12VIS/%U';
backup as compressed backupset filesperset 1 database;
}

Change the directory in the quoted section after 'format' to match whatever directory you've designated as your backup directory, but keep the %U. Save the script, and then, as the oracle software owner, run rman target / @your_script_name . Then go out and run some errands or something; taking a compressed backup of 200GB is going to take a while. :)

Why should I use the addlnctl.sh and addbctl.sh scripts instead of stopping and starting database services the normal way (i.e. lsnrctl and sqlplus)?

Good question. Frankly, I don't use the EBS-supplied scripts for those tasks very often; I prefer the old-school manual method. One advantage to using the scripts, however, is that it makes scripting automated shutdown and startup of the database and listener pretty easy, complete with exit codes so you can relax or panic based on the outcome of the process. If you are going to use addbctl.sh, however, be aware that it's configured to use the old-style pfile (init.ora) rather than an spfile when starting the database. Ben Prusinski wrote a blog post recently that covers this limitation (and a workaround) in detail.

Um, yeah, so what's a concurrent manager, and why do I care?

Concurrent managers are the internal job-control mechanism for EBS, a collection of processes spawned for handling reports and tasks that are better suited to batch processing, or that will take longer than a reasonable UI refresh will permit. In real life, you care because you can be very granular about allocation of the Apps system's resources, assigning work shifts, priorities, and dependencies to different concurrent programs (DBAs will immediately think DBMS_SCHEDULER, but it doesn't use those mechanisms). In the case of our little test system, you care because they'll use up a lot of resources on in the Vision instance, since the out-of-the-box configuration of Vision runs a lot more concurrent processes than are really necessary for a single-user system.

I just want to explore the EBS UI a bit, and would like to avoid the overhead of running the concurrent managers. Can I feed flags to adstrtal.sh to only start the bits that I want?

Not exactly, but you can run the individual component scripts invoked by adstrtal.sh, omitting the script (adcmctl.sh) that starts the concurrent managers. In fact, running the following two commands will get the web and forms interfaces up and running well enough for purposes of most experimenting:

  • adalnctl.sh
  • adopmnctl.sh startall (not start)

Keep in mind, however, that some aspects of the EBS system rely on frequently-running concurrent programs to function properly. Furthermore, if the CMs are down for too long, all those previously-scheduled jobs will stack up, and the next time you do start them, you can expect your system to get slammed for a while.

Installing EBS on Linux Part 2, companion

This is a companion piece to my second guest post on the ORACLENERD blog about installing Oracle E-Business Suite. I'll try to address questions and errata from that post here, rather than repeatedly asking Chet to tweak his blog just because I was unclear or incorrect. ;-)

What's this "port pool" business all about?

The port pool defines an offset for all of the default ports used by the various components of Oracle Applications. For example, selecting port pool 0 would leave the database listener port at the default of 1521, and the EBS login URL on port 8000. Selecting port pool 55, as I did in my example, sets the database listener port to 1576 (1521+55), and the Apps login URL's port to 8055. Advantages to using the port pool include:

  1. Configuring all of these ports manually would be quite a chore, and the risk of inadvertently introducing a port conflict is high.
  2. Using default ports is generally frowned upon from a security standpoint
  3. If you decide to run multiple EBS instances on the same server, you can set different port pools for each instance and be reasonably certain there won't be any conflicts between the services comprising those instances.

Why is the installer doing all of this unzipping? Didn't I already unzip a ton of stuff?

The unzipping you did initially just extracted the files from large DVD-sized bundles into one big staging directory. The contents of those bundles were mostly ... more zip files. The installer is extracting just the files it needs, depending on your installation type. If you were to perform a Fresh Install instead of a Vision Install, your installation time would probably be shorter, because the installer wouldn't need to extract 200GB of Vision database files.

If I'm installing all of the Oracle Applications services on one server, why should I create two separate users to run things? Couldn't the oracle user run them all?

Primarily for ease of management of the services. The OS environment settings for the owner of the database software are very different from those of the applications software owner; both accounts need to perform different tasks. When stopping and starting services, looking for log files, and performing maintenance tasks, it can be annoying to remember in which context you're operating. You probably won't do much damage to your system if you install everything with oracle (or oravis) as the owner, but you might cause yourself some aggravation when your PATH and ORACLE_HOME environment variables aren't always what you'd expect.

In a real-world situation, of course, there's an additional benefit: enabling a clearer separation of duties. Your organization's DBA and EBS Applications Administrators may not be the same people, and they wouldn't need access to both accounts.

adopmnctl.sh? adapcctl.sh? Whahhuh.sh?

These are a few of the the shell scripts used to manage Oracle Applications services. The first (adopmnctl.sh) is a wrapper around opmnctl, a utility that will be familiar to people who have managed Oracle Application Server 10g before. It's used to start and stop the Web and Forms server components of EBS. The second script (adapcctl.sh) is used to start and stop just the Apache web server. You can read more about these and other commonly-used server process control scripts in the "Managing Server Processes" section of the Oracle Applications Maintenance Procedures manual.

I couldn't help but notice this weird reference buried in the main post, most likely because you linked it. What's an APPL_TOP? Is this some sort of freakish Mac boosterism?

The APPL_TOP is the top-level directory containing all the files associated with the EBS applications (not to be confused with the ORACLE_HOMEs for the Application Server 10g software). Within the APPL_TOP are a number of configuration and environment files, and a top-level directory ("product top") for each of the E-Business Suite modules. The values of these "top" directories are also set as environment variables for the application software owner's, for ease of navigation around the applications tier file system. For more information about the applications tier file system structure, review Chapter 2 of the Oracle Applications Concepts manual. Oh, and just for fun, log in as the applications software owner (applmgr in general, applvis in my installation example in the ORACLENERD post), source the environment file, and type 'env | grep _TOP'.

Installing EBS on Linux part 1, companion

This is a companion piece to my first guest post on the ORACLENERD blog about installing Oracle E-Business Suite. I'll try to address questions and errata from that post here, rather than repeatedly asking Chet to tweak his blog just because I was unclear or incorrect. ;-)

Why Release 12.1.1, and why Linux? Why not an older E-Business Suite version, like 11.5.10 or 12.0.4? Why not Windows?

I chose this combination because those are the components that are most conveniently available to me, and probably to you. Oracle only hosts the most recent version of the software (12.1.1 at the time of this writing) on E-Delivery. To get an older version of the E-Business Suite software, you'd need to log an SR with Oracle Support, and they'd probably have to ship you physical media. You'd also need to be a supported EBS customer to have your request fulfilled.

As far as the OS choice goes, you can download EBS-capable versions of Linux for free (Oracle Enterprise Linux, for example, or CentOS, another favorite "just like RHEL but without the pesky fees" release). Not everyone is going to have access to a Windows Server license. There are people who have installed EBS on a desktop-class Windows OS, such as Windows XP, but I prefer to indulge in different sorts of crazy.

You're kidding about the disk space requirements, right?

Nope. According to the installation Guide, the Release 12.1 Vision install requires 208GB for the database software and data files, and 35GB for the applications tier install. If you want any sort of breathing room for log files, etc., you'll want to reserve a little space beyond 245GB. These numbers have been growing pretty steadily over the past few releases of EBS.

And the memory requirements? Those seem pretty over-the-top, too.

Well, you'll be running an Oracle 11.1.0.7 database and a bunch of Oracle Application Server 10g components on this server, and those tend to have hefty memory requirements. Later on, I'll provide pointers to some resources that explain how to reduce the memory footprint of E-Business Suite for single-user demo systems like the one we're setting up, but those changes can't be made until after the software's installed.

EBS runs on an Oracle database, right? Do I need to install database software first?

No, you don't. The Oracle Applications installer delivers everything you need (a 40+GB certainly should) to run EBS. It will lay down an 11.1.0.7 RDBMS ORACLE_HOME, in addition to all of the database data files. I don't recommend pre-installing a database to run EBS. A separately installed database ORACLE_HOME will probably not have all of the patches necessary to comply with requirements for running EBS. The database ORACLE_HOME delivered by the EBS installer, by contrast, has all the necessary patches "baked in." Check the $ORACLE_HOME/.patch_storage directory after the installation, and you'll see what I mean. :)

What's this "Vision install" stuff you keep mentioning?

Vision is the name of the fictional company Oracle uses to demo features of the E-Business Suite. A Vision install of Oracle Applications delivers a pre-configured environment complete with dummy data, suitable for exploring features, training users, and learning how all of the pieces of E-Business Suite fit together. The other install option, a "Fresh Install," delivers an empty database (mostly) and unconfigured EBS environment, and is the starting point for a production deployment of Oracle Applications.

Why do you recommend installing EBS in a virtual machine (VM)?

For lots of reasons that aren't necessarily EBS-specific, just general virtualization benefits:

  • Compartmentalization: satisfying prereqs for EBS doesn't mean you need to pollute your normal working environment, and it's way easier to shut down/pause a VM if EBS starts to drag down your host system's peformance
  • Ability to take snapshots and roll back a VM, which can be handy when testing patches or new configurations
  • Ability to tweak resource allocation (memory, number of CPUs, etc) after the virtual server is created
  • Allows creation of dynamically expanding disk images, so storage isn't allocated until it's needed. When you're looking at 250-300GB of storage for an EBS Vision install, that can be a big deal.
  • Portability: If your VM is stored on an external drive, you can carry it with you for demos and whatnot. If you get pressed for space, you can burn the VM files to DVD and restore them later if needed.
  • If you're a Mac user like me, there's no other choice, really. ;-)

Yeah, but aren't you worried about degraded performance while running in a VM?

Me, personally? Not really. Your situation may be different, though. In my case, I'm trying to cram a huge database and an application server into a relatively small box, with 3G of memory, 2 CPUs, and one large (500GB), slow (5400 rpm) disk. I'm not expecting stellar performance in the first place, and I'll gladly accept the additional overhead of VMware or Virtualbox for the convenience of a virtualized environment as outlined above.

Hey Vancouver BC, want an Oracle Users Group?

Well, here's your chance.

As a recent arrival to Vancouver, BC from Pittsburgh, PA, I'd started hunting around for a Vancouver-based Oracle Users Group. I was surprised to discover that the closest group was actually based in Victoria, BC, which I've now learned is a scenic but not particularly convenient commute. :-) I'd arrived in BC just barely in time to make the Victoria group's November meeting, so off I went.

At the meeting, I had the privilege of seeing two interesting presentations by Dan Morgan. Dan's secondary purpose in coming to the meeting was to help Oracle lay the foundation for forming an OUG based in Vancouver, to better serve the customer base in the Lower Mainland. I tagged along to a second, more informal meeting about the Vancouver OUG at (of course) a local pub, with Dan, some folks from Oracle, and representatives of local Oracle customers. Since there was beer involved, discussion occasionally strayed, but here's the basic scoop:

  • There are two upcoming events where interested parties can get involved in the formation of the Vancouver OUG: an Oracle reception on 3 Dec 2009, and the Oracle Database 11gR2 launch event on 14 January 2010. More information can be found at the VanOUG web site: http://www.vanoug.org/. I hear that the second event particularly is going to have some star power. ;-)
  • This group is in the early stages of its formation; officers and directors have not been chosen. If you're interested in being part of getting a new OUG off the ground, this is a great opportunity to do so.
  • Timing and location of future VanOUG meetings are keys to its success; engaging content only works if people come to the meetings.
  • If you're interested in getting involved, have ideas, or want to make sure you're included in future announcements about VanOUG, visit the "Contact Us" link on the VanOUG site.

VanOUG is currently an idea and a 1-page web presence, but with community involvement it will be a lot more in a very short time. :-) I'm looking forward to meeting some new people at the upcoming events!

My Oracle Support has landed. Check your links.

So there was a small, inconsequential change in the Oracle Support landscape last week: Oft-maligned-and-yet-somehow-much-beloved Metalink went away, to be replaced by a flashier (hah, I kill me) My Oracle Support. I bet you barely noticed.

One thing that I discovered pretty quickly is that some of my links to old Metalink content no longer worked. Thankfully, the content itself hadn't disappeared, but I had some editing to do in my personal documentation. Here's what I've found:

  • Links referencing metalink2.oracle.com, specifically those of the super-long form https://metalink2.oracle.com/metalink/plsql/f?blahblah:NOT,nnnnnn.n, are broken. This may be temporary, but somehow I doubt it.
  • It appears, however, that shorter metalink2 links (https://metalink2.oracle.com/metalink/plsql/showdoc?db=NOT&id=nnnnnn.n) still resolve.
  • Similarly, links that reference metalink.oracle.com, of the form https://metalink.oracle.com/metalink/plsql/showdoc?db=NOT&id=nnnnnn.n seem to forward to support.oracle.com without issue.
  • The "new way" to format links to My Oracle Support documents is: https://support.oracle.com/CSP/main/article?cmd=show&id=nnnnnn.n&type=NOT
  • These direct links to My Oracle Support documents do not open pages wrapped in the new My Oracle Support interface. This is probably a good thing for lots of people. :-)
  • Links to patches via updates.oracle.com, of the form https://updates.oracle.com/ARULink/PatchDetails/process_form?patch_num=nnnnnnn, are unaffected by the switch to My Oracle Support. Whew.

Anyone notice anything else? Please comment away.

(off-topic aside: I didn't really expect to break a long blog silence with another post about Support. Ah well. Man plans, God laughs.)