The Ghost of Snapped Shot

Or, welcome to my low-maintenance heck.

<<
 >
>>
Ye Tech: Working with Oracle Internet Directory... on a Mac!

The Sweet Smell of Success!
To my regular readers, my apologies. I'm trying to collect my thoughts in writing so that I have a greater chance of remembering them down the road. If you're not someone who generally works with Oracle products, feel free to gloss over this one, as it's probably going to be dullsville.

Do you use OracleAS in your workplace? Have you ever gotten tired of trying to administer Oracle Internet Directory from within a Windows or Linux virtual machine? Ever wish you could give up the headaches of trying to boot up an environment to run OID Administrator in, and just run it right on your Mac?

In other words, does it feel like you're spending more time waiting for the system to start than you are actually performing administrative tasks?

Yeah, feels like that to me, too. Fortunately for both of us, it is possible to run the Java-powered OID Administration console from Mac OS X. Follow along with this easy 200-step process, and you'll be able to do it, too!You're still around for the ride? Awesome! Here's how I did it:

Step 1: Download Oracle10g Client for Mac OS X.

Go here, click "Accept," and download the Oracle client software.

[Click for walkthrough]
Select the "Oracle Database 10g Client... for Mac OS X" distribution...
Accept the license, and then click on the file listing to start the download...
The download...


Step 2: Unpack the client software and put it somewhere.

Just double-click on the .zip file in your Downloads folder to extract it. On my system, I created an "Oracle10g" folder under the base Applications folder. Wherever you put it, you'll move the "ohome" and "docs" folder there. When done, the full path to the client software should be something like /Applications/Oracle10g/ohome.

A warning: If you have FileVault turned on, you might want to move this file to a non-encrypted area on your hard drive before expanding it.

[Click for walkthrough]
Move the files to /Applications/Oracle10g


Step 4: Get Additional JARs

OID Administrator requires some Java files which were not included in the OSX shiphome. While it's not generally a good idea to mix and match distributions, we're pretty safe in this particular case, since we're essentially dealing with pure Java code. Of course, this comes with the serious caveat that Nothing We Are Doing Here Is Supported By Oracle—But hey, their "support" of Mac OS X is spotty at best, so it's not like this is altogether uncharted territory.

With that caveat in mind, jump back over to OTN, because we need to download a product that ships with the missing JAR files. For these purposes, the files provided by an OracleAS 10.1.2 mid-tier installation will work, so hop over to the download page at this address and pull down CD1 of the Linux x86 version of that product.

[Click for walkthrough]
Jump to OracleAS 10.1.2.0.2, which contains the files we're going after.
Here's where we lose those of you who are following along from the Islamic Republic of Iran.
Even though it's Java, it'll be easier for both of us if you make sure to pick the Linux CD1 here.


Once downloaded, you'll probably want to jump to the commandline, because there really isn't any easier way to do this. Once you're safely ensconced in Terminal, do the following:

$ cd $HOME/Downloads/
$ mkdir Pain
$ cd Pain
$ cpio -idmv < ../as_as_linux_x86_portal_wireless_101202_disk1.cpio
......... (a bunch of output)
$ unzip -j Disk1/stage/Components/oracle.oid.client_common/10.1.2.0.1/1/DataFiles/lib.jar
Archive: Disk1/stage/Components/oracle.oid.client_common/10.1.2.1.0/1/DataFiles/lib.jar
inflating: netutil.jar
inflating: oidldap.jar
$ unzip -j Disk1/stage/Components/oracle.oid.client_common/10.1.2.0.1/1/DataFiles/odm.jar
Archive: Disk1/stage/Components/oracle.oid.client_common/10.1.2.1.0/1/DataFiles/odm.jar
inflating: odm_help.jar
inflating: osdadmin.jar
$ unzip -j Disk1/stage/Components/oracle.bali.share/1.1.18.0.0/1/DataFiles/share.jar
Archive: Disk1/stage/Components/oracle.bali.share/1.1.18.0.0/1/DataFiles/share.jar
inflating: share.jar
$ unzip -j Disk1/stage/Components/oracle.bali.ewt/3.4.38.0.0/1/DataFiles/ewt.jar
Archive: Disk1/stage/Components/oracle.bali.ewt/3.4.38.0.0/1/DataFiles/ewt.jar
inflating: ewt3.jar
inflating: ewt3-nls.jar
$ mkdir -p /Applications/Oracle10g/ohome/ldap/java/classes
$ mv netutil.jar /Applications/Oracle10g/ohome/ldap/java/classes/
$ mv share.jar /Applications/Oracle10g/ohome/ldap/java/classes/
$ mv ewt3*jar /Applications/Oracle10g/ohome/ldap/java/classes/
$ mv oidldap.jar /Applications/Oracle10g/ohome/ldap/lib/
$ mv osdadmin.jar /Applications/Oracle10g/ohome/ldap/lib/
$ rm odm_help.jar


Step 5: Create shell script wrapper?

On my system, I created a wrapper script that I can run from the terminal (where I spend most of my time), without having to worry about setting the environment or changing my login profile. Here's how it looks:

#!/bin/sh

ORACLE_HOME=/Applications/Oracle10g/ohome; export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$PATH; export PATH
JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Home; export JAVA_HOME

$ORACLE_HOME/bin/oidadmin


Step 6: Run it!

It doesn't matter whether you double-click or you type—You're guaranteed to enjoy the glorious native processing goodness that results!

Yum!


Server settings!


Tree-browsing goodness.


Did this work for you? Did you have problems with anything presented here? Do you know of a good way to package this as a native Mac icon?

Chime in down in the comments section. I definitely want to hear what you have to say!

  Round-up


Comments:

#1 Maga 12-Apr-2011
I doesn't working for me, when I'm executing the shell script it return the following error:


eth-joner-stein:ohome jonerstein$ cat oid.sh
#!/bin/sh

ORACLE_HOME=/Applications/Oracle/Oracle10gClient/ohome; export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$PATH; export PATH
JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home; export JAVA_HOME

$ORACLE_HOME/bin/oidadmin
eth-joner-stein:ohome jonerstein$ ./oid.sh
Starting Oracle Directory Manager .......
Exception in thread "main" java.lang.NoClassDefFoundError: oracle/sysman/emSDK/client/appContainer/WebApplication
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)


Could you please help me with this issue?

Regards,
Maga
Powered by Snarf · Contact Us