Jdk 1.5.0_04 and Eclipse with SuSE Linux - startup problems with Eclipse
Hi,
I have SuSE Linux 9.3 and just downloaded Jdk 1.5.0_04 and Eclipse IDE 3.1 for Linux.
I have sucessfully installed Java in the following directory under Linux:
'/usr/java/jdk1.5.0_04'
And I also have downloaded Eclipse IDE 3.1 for Linux. I have unzipped it into the following directory:
'/home/juergenkemeter/bin/eclipse/eclipse
I have chosen the upper Java JRE in the Eclipse preferences.
Now to my problem:
Sometimes it happens that when I startup Eclipse or try to runa java program, Eclipse is shut down with a) no comment at all, or b) with an error message "JVM terminated. Exit code = 1 (...)". I can send the picture of the whole screenshot of the error message if it helps.
Now I think that this is due to wrong installation paths of the Jdk and Eclipse?! Perhaps there are some conflicts regarding user rights (admin and the normal user 'juergenkemeter'.
If anyone has suggestions, that would be helpful. Its nasty when Eclipse shuts down while programming...
cheers,
J�rgen
I only used the getSystemResource because it is slightly more convenient. The
getResource version requires a "/" in front of the filename, as in:
java.net.URL imageURL = getClass().getResource("/" + imageName);
System.out.println("Loading icon: " + imageName);
for (int i = 0; i < 32000; i++)
System.out.println(i);
icon = new ImageIcon(imageURL);
Unfortunately, this still deadlocks after a few thousand hits.
Of course, I don't need thousands of icons in my application, but the real-world issue is that the program locks up every few times it is started, which is a real drag for the customers!
I suppose the InputStream way would work, though it is not very elegant compared to loading the resource in the usual manner. I'll try it if there are no other suggestions.
Thanks,
Dan
Similar Messages
-
9i and 9ias installation on SuSE linux 7.3
Hi,
Are there any known issues involved in installation of 9i
and 9ias on SuSE linux 7.3 ??
Also please let me know what are the workarounds for those
problems and where the patches may be downloaded from ??
I am asking this question because SuSE 7.3 is not yet
certified by oracle.
Thanks,For the database, look at
http://www.suse.com/en/support/oracle/db/9i_73.html -
NetWeaver 2004s installation problem on Suse Linux
Hi,
I downloaded NetWeaver 2004s 90 days version from SDN and installed on Suse linux. I am not able to execute command to get the license after installation. Here is the line I executed
add user n4sadm
unpacking adm_env.tar.bz2
Changing password for n4sadm.
New Password:
Bad password: it is based on a dictionary word
Reenter New Password:
Password changed.
add user sdb
Changing password for sdb.
New Password:
Bad password: it is based on a dictionary word
Reenter New Password:
Password changed.
add user sqdn4s
unpacking sqd_env.tar.bz2
Changing password for sqdn4s.
New Password:
Bad password: it is based on a dictionary word
Reenter New Password:
Password changed.
unpacking /mnt/iso/server/TAR/x86_64/SAPDB_I.tar.bz2
unpacking /mnt/iso/server/TAR/x86_64/SAPDB_II.tar.bz2
unpacking /mnt/iso/server/TAR/x86_64/SAPDB_III.tar.bz2
unpacking /mnt/iso/server/TAR/x86_64/SAPN4S.tar.bz2
Service visinet-gui on port 3601/tcp was deactivated...
Service cpq-tasksmart on port 3201/tcp was deactivated...
Service netxms-mgmt on port 4701/tcp was deactivated...
Service iwec on port 4801/tcp was deactivated...
Service tick-port on port 3200/tcp was deactivated...
Service netxms-agent on port 4700/tcp was deactivated...
Service iims on port 4800/tcp was deactivated...
Update the necessary information in sysctl.conf:
kernel.shmmax = 23136829430
kernel.shmall = 5242880
kernel.msgmni = 1024
fs.file-max = 32768
kernel.sem = 1250 256000 100 1024
Found interface: eth0 . Alias is eth0:0
ifconfig eth0:0 192.168.155.1 up
Ok
n4shost:n4sadm 35> /usr/sap/N4S/SYS/exe/run/saplicense -get
/usr/sap/N4S/SYS/exe/run/saplicense: Exec format error. Binary file not executable.
Can any one help me to complete the installation and execute the server successfully. I am very new to linux. Do i need to execute any other commands to complete my installation.Dear Rajasekhar,
this error simply comes, because the architecture of your computer is not the same as the one from the test drive. As I'm not sure, which architecture the N4S test drive uses, we simply have one of the following situations here. Either
your machine is x86_64 and the N4S is i386 or
your machine is i386 and the N4S is x86_64.
Please check!
Thanks,
Hannes -
Developing flex apps that use blazeds with flexbuilder and eclipse
Hi all,
Im new to Flex. I'm trying to setup my development environment. What I've noticed is that when blazeds is started and I run a flex project, it creates a folder in the blazeds root folder named $ProjectName-debug (replace $ProjectName with the actual project name). Once this folder is created, and the flash page is accessed, it cannot be deleted until blazeds is actually stopped. The files on that folder seem to be locked. While this folder is locked, eclipse cannot seem to re-build the project (specifically clean). Thus every small change I make to the project, I'm currently having to stop blazeds, clean the flex project, start blazeds, run the flex project.What makes things worse is that I have to start our application along with blazeds so it can retrieve the data from the app (which takes a few minutes).
I'm wondering if other people are having to go through this pain or if they've figured out a way to get around this. I would ideally like to have a way where I'm able to rebuild the project and hit f5 and reload the page and see the changes. I understand this is not possible with debug.
If anyone has figured out a way to incorporate blazeds to their development environment in a more practical way, please let me know. We just switched from tapestry/gwt to flex. We used to be able to update on the go thus development was much simpler.
Regards,
UdamHi Udam. I don't seem to have that problem. I'm using the FlashBuilder 4 (formerly FlexBuilder) beta so maybe it is a bug in the version of FlexBuilder you are using, although it could also be something else in your environment.
When I clean the project in FlashBuilder 4 it deletes all the assets from the $ProjectName-debug directory and then rebuilds the project. It doesn't attempt to delete the $ProjectName-debug directory itself.
If you are not using the FlashBuilder 4 beta I would try using that and see if it resolves the problem for you. If that fixes things then you know it is an issue with the version of FlexBuilder you are using.
If that doesn't do it, it could be an issue with the application server you are using or maybe something else in your environment.
If you still have problems after trying this with FlashBuilder 4 please reply back with as much information about your environment as you can such as what application server you are using, what OS you have, what browser you are testing with, if you have FlexBuilder and BlazeDS running on the same machine or separate machines, etc.
Thanks.
-Alex -
Problems with SuSE Linux 10 and JMF
Hi, I know that this is a problem of many other people who are working with JMF and I hope we can now find a solution for this problem.
The problem is, that after installing the Java Media Framework and running the jmfinit Programm, the jmfinit programm shows these errors:
java.lang.Error: Can't open video card 0
java.lang.Error: Can't open video card 1
java.lang.Error: Can't open video card 2
java.lang.Error: Can't open video card 3
java.lang.Error: Can't open video card 4
java.lang.Error: Can't open video card 5
java.lang.Error: Can't open video card 6
java.lang.Error: Can't open video card 7
java.lang.Error: Can't open video card 8
java.lang.Error: Can't open video card 9
The video framerate is also very slow and I think, that this has to do with these errors.
I've installed the latest ATI FGLRX driver for my ATI Radeon X800 and these errors also occured.
I also have only JavaSound Capture in the capture device list, but I'm using ALSA for playing music in Linux.
If anyone gets JMF running under SuSE Linux 10 without these errors and a good video frame rate, please tell me.
If you also have a good instruction f�r installing JMF under SuSE please tell me too.
Thanks, thomasevery linux distro i've installed, gets those errors.rh,suse,debian.
If you do not have a video capture device, you will get those errors.
Are you having framerate issues with webcam or video file??
If it is the webcam, it has nothing to do with your ati video drivers.
The slow frame rate from web cam would be your webcam drivers.
If it is video file frame rate, make sure you have codecs supported in jmf for that type of video. -
Java JDK 7 u17 won't install and Eclipse won't run past boot logo.
Java JDK 7 u17 won't install and Eclipse won't run past boot logo. Eclipse Classic used to work fine for awhile. I haven't used it for a month or two and tried to boot it, Eclipse won't run past boot logo. It looks like JDK is not even there anymore. JDK won't install successfully. I have Mac OS X 10.8.3.
I tried removing Java, re-download JDK multiple times.. same results.
MyComputer-MacBook-Air:~ MyComputer$ java -version
java version "1.7.0_17"
Java(TM) SE Runtime Environment (build 1.7.0_17-b02)
Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)Paul Adare is correct in saying that you cannot "upgrade" from 32-bit to 64-bit. You can, however, backup your files and reload them onto your PC.
Given that you are able to boot Windows 7 after the failure to install Windows 10 Technical Preview, it is apparent that you are not formatting the drive during your clean installation. There are a number of potential issues an existing configuration can
cause, such as preventing Windows Setup from registering boot files, modifying partitions, or moving an existing installation and data to the windows.old folder. I would recommend removing the partitions from your drive (note: this will erase any data remaining
on the hard disk) during installation to ensure that Windows Setup has a fresh hard drive to install to. If you continue to experience errors, two other factors to take into consideration are:
Does your system use a storage controller that requires loading a driver during Windows Setup?
Is the hardware malfunctioning? Do the hard disk and memory pass testing software like Windows Memory Diagnostic or chkdsk?
Reference
this article for more information.
Hessam
Windows Outreach Team- IT Pro
Windows for IT Pros on TechNet -
Remote Server Debugging with Tomcat and Eclipse
Hi ,
I am using Tomcat 4.0, Jdk1.3 and eclipse 2.1 ,Windows 2000
I am trying for past 5 days, Remote Server Debugging.
But I can't acheive.Please help in this tough situation.
I have configured Tomcat to run in debug mode by the following steps:
1) In catalina.bat, SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
2) Then I set the JAVA_HOME AND TOMCAT_HOME in the environment mode.
3) Then I clicked the startup.bat in the bin directory.
In Eclipse side , I followed as,
1) Run/Debug/Remote Java Application/New/
In the connect tab, I gave host:localhost and port:8000
2) Then I clicked Debug button.
I didn't use any plugin.
But it producing "Failed to connect to Remote VM.Connection refused."
So I gave host:localhost and port:8080 in eclipse side,
but this I am getting errorin eclipse side as "Failed to connect to Remote VM".In server side, I am getting error as,
java.lang.NullPointerException
at org.apache.catalina.connector.http.HttpResponseStream.checkHead(HttpR
esponseStream.java:253)
at org.apache.catalina.connector.http.HttpResponseStream.<init>(HttpResp
onseStream.java:104)
at org.apache.catalina.connector.http.HttpResponseImpl.createOutputStrea
m(HttpResponseImpl.java:220)
at org.apache.catalina.connector.ResponseBase.getOutputStream(ResponseBa
se.java:725)
at org.apache.catalina.connector.ResponseBase.finishResponse(ResponseBas
e.java:469)
at org.apache.catalina.connector.HttpResponseBase.finishResponse(HttpRes
ponseBase.java:236)
at org.apache.catalina.connector.http.HttpResponseImpl.finishResponse(Ht
tpResponseImpl.java:288)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcesso
r.java:1039)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.ja
va:1107)
at java.lang.Thread.run(Thread.java:484)
Please do the needful
If you have anwser, Please mail to [email protected]Well, once you're already using MyEclipse, I have it set up even simpler than that. Go to Window/Preferences/MyEclipse/Application Servers/Tomcat4/Launch and set the launch mode to debug.
This works if the project is successfully setup as a webproject in MyEclipse.
My problem is that I have a project that was not developed with MyEclipse and for some reason does not work when I set it up as a web project in MyEclipse. MyEclipse seem to do something funny with it when I establish the project. Now, if I set it up simply as a java project (as oppposed to Web Project) in myEclipse, then MyEclipse does not give me an option of deploying it.
Any ideas about how I would go about debugging a project that's not set up as a Web Project in my eclipse? -
Glassfish with NetBeans and Eclipse
Hi,
I have both NetBeans Java EE and Eclipse IDE for Java EE Developers installed on my laptop. With NetBeans Java EE I have the installed the Glassfish and Tomcat server . Can I use/'integrate' this same Glassfish and Tomcat server with my Eclipse installation or is it advisable to install a "standalone" Glassfish &Tomcat server specific for my Eclipse environment?
Thanks.
GuyHi!
Yes you can integrate/use Glassfish and Tomcat with your Eclipse installation.
For Glassfish support in Eclipse (assuming you are using Eclipse Luna) you have to install first: http://marketplace.eclipse.org/content/glassfish-tools-luna
The integration is really simple: https://blogs.oracle.com/oepe/entry/getting_started_with_glassfish_4
Hope hits help,
Kind regards. -
How to download 64 bit JDK for SUSE Linux 10.2 x86_64 Machine
Hi SAP Guru's
We are in the process of Installing SAP Netweaver SR3 on the suse linux 10.2 on the x86_64 Machine.
We are unable to findout compatable jdk whcih will support this plateform.
Please suggest where from we can download JDK.Hi,
You can download and install it using YaST (Software/Software Management) in Suse 10.2.
You can install the Java packages with YaST. If you choose Filter "Search" and enter "Sun" you'll quickly find them.
Suse only supports up to 1.5 if you want 1.6 you must get it from the Java site.
You can also search around this following FTP Link.
[http://download.opensuse.org/repositories/Java:/|http://download.opensuse.org/repositories/Java:/]
[http://download.opensuse.org/distribution/openSUSE-stable/repo/non-oss/suse/x86_64/|http://download.opensuse.org/distribution/openSUSE-stable/repo/non-oss/suse/x86_64/]
Regards
Bhavik Shroff
Edited by: Bhavik G. Shroff on Nov 11, 2008 6:46 AM -
Hi all
Does anybody else use JDeveloper 10.1.3 with SuSE linux ? I currently have SUSE linux 10.0, (kernel 2.6.13-15.8-smp), JDev version 10.1.3.0.4 SU2I with jdk 1.5.4 and I am facing various problems where JDeveloper hangs or behaves unexpectedly. For example if I create a JSF page as a jspx document then the visual editor does not display data correctly.
My machine is 2.8 GHz P4 CPU with 2 GB of RAM so I do not think that I am having any problem with my system resources.
I have also read somebody else complain about the debugger being very slow on SuSE linux so I want to know if anybody else is facing similar problems.
Thanassis
\Hi Guys,
I no problem running jdev 10.1.3 on my latest SuSE ;). however, i got problem in running the debugger. the problem is the debugger stepping so slow. each step takes about 5-10 seconds . i have no idea how to solve this problem. but it has no problem on kubuntu 5.10 at all. i wonder i could be the kernel. but just my guess only.
please let me know how to solve it. thz guys.
-T -
Hi @ all,
i'm trying to learn J2EE technology with jboss and eclipse dev.kit.
I use the Jboss/eclipse tutorial (http://prdownloads.sourceforge.net/jboss/Tutorial-1.3.0.pdf)
but there are several problems with the ear-file.
This error will be processed if I try to deploy the package to the jboss
server:
14:20:12,765 WARN [ServiceController] Ignoring request to stop nonexistent service: jboss.j2ee:service=EARDeployment,url='FiboApp.ear'
14:20:12,765 WARN [ServiceController] Ignoring request to stop nonexistent service: null
14:20:12,765 INFO [EJBDeployer] Undeploying: file:/C:/jboss-4.0.0/server/default/tmp/deploy/tmp3781FiboApp.ear-contents/FiboEJB.jar
14:20:12,765 WARN [ServiceController] Ignoring request to stop nonexistent service: null
14:20:12,765 INFO [EARDeployer] Undeploying J2EE application, destroy step: file:/C:/jboss-4.0.0/server/default/deploy/FiboApp.ear
14:20:12,781 WARN [ServiceController] Ignoring request to destroy nonexistent service: jboss.j2ee:service=EARDeployment,url='FiboApp.ear'
14:20:12,781 WARN [ServiceController] Ignoring request to remove nonexistent service: jboss.j2ee:service=EARDeployment,url='FiboApp.ear'
14:20:12,843 WARN [ServiceController] Ignoring request to destroy nonexistent service: null
14:20:12,843 WARN [ServiceController] Ignoring request to remove nonexistent service: null
14:20:12,843 WARN [DeploymentInfo] Could not delete file:/C:/jboss-4.0.0/server/default/tmp/deploy/tmp3781FiboApp.ear restart will delete it
14:20:37,906 INFO [EARDeployer] Init J2EE application: file:/C:/jboss-4.0.0/server/default/deploy/FiboApp.ear
14:20:37,984 INFO [EARDeployment] Registration is not done -> stop
14:20:37,984 ERROR [MainDeployer] Could not initialise deployment: file:/C:/jboss-4.0.0/server/default/deploy/FiboApp.ear
org.jboss.deployment.DeploymentException: Error in accessing application metadata: ; - nested throwable: (javax.management.InstanceAlreadyExistsException: jboss.j2ee:service=EARDeployment,url='FiboApp.ear' already registered.)
at org.jboss.deployment.EARDeployer.init(EARDeployer.java:270)
at org.jboss.deployment.MainDeployer.init(MainDeployer.java:799)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:736)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:709)
at sun.reflect.GeneratedMethodAccessor31.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:119)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:131)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:242)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:176)
at $Proxy8.deploy(Unknown Source)
at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:305)
at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:481)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:204)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:215)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:194)
Caused by: javax.management.InstanceAlreadyExistsException: jboss.j2ee:service=EARDeployment,url='FiboApp.ear' already registered.
at org.jboss.mx.server.registry.BasicMBeanRegistry.add(BasicMBeanRegistry.java:755)
at org.jboss.mx.server.registry.BasicMBeanRegistry.registerMBean(BasicMBeanRegistry.java:211)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:119)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:131)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:242)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642)
at org.jboss.mx.server.MBeanServerImpl$3.run(MBeanServerImpl.java:1397)
at java.security.AccessController.doPrivileged(Native Method)
at org.jboss.mx.server.MBeanServerImpl.registerMBean(MBeanServerImpl.java:1392)
at org.jboss.mx.server.MBeanServerImpl.registerMBean(MBeanServerImpl.java:359)
at org.jboss.deployment.EARDeployer.init(EARDeployer.java:262)
... 21 more
Can anybody help.
Thx in advance.
Greets from Germany
BenHi, I ran into Sam problem. I have the Eclipse 3.1.0, JBOSS 4.0.1sp1, JBoss-IDE 1.3.0 running under JDK 1.5.0.02. It appers for sum resion that the jboss-web.xml is not getting the name of the �<ejb-ref-name></ejb-ref-name>�. if I manually add the name so it looks like this: �<ejb-ref-name>ejb/Fibo</ejb-ref-name>� the project deploys. I am new to this as well and am not shore what needs to be changed to fix this in the build. I am thinking it�s a problem in the way XDoclet parses the source for the META DATA.
-
JDK & Suse Linux - cannot use JMF or run JMSTUDIO
Hi
I have tried using JMF and running jmstudio with SuSE linux 10.0
Every time I try and run jmstudio I get the following error:
Exception in thread "main" java.lang.NullPointerException
at sun.awt.X11.XMenuPeer.repaintMenuItem(XMenuPeer.java:363)
at sun.awt.X11.XMenuItemPeer.setEnabled(XMenuItemPeer.java:71)
at sun.awt.X11.XMenuItemPeer.disable(XMenuItemPeer.java:93)
at java.awt.MenuItem.disable(MenuItem.java:280)
at java.awt.MenuItem.enable(MenuItem.java:267)
at java.awt.MenuItem.setEnabled(MenuItem.java:242)
at JMStudio.updateMenu(JMStudio.java:1274)
at JMStudio.<init>(JMStudio.java:119)
at JMStudio.createNewFrame(JMStudio.java:1412)
at JMStudio.main(JMStudio.java:1401)
Please can someone tell me if this is a problem with environment variables?
I have tried to set up my .bashrc but if someone has a working configuration file I would gladly try it
I am a final year student and am using JMF for my project and DESPERATELY need to get JMF running
Any help would be gratefully received
Regards
UriIn NetBeans using JDK1_5, all you have to do is :
step 1.) tools -> library manager.
step 2.) Click on New Library.
step 3.) Name the Library Name JMF (or whatever).
step 4.) Leave Library Type as Class Libraries.
step 5.) Click OK.
step 6.) Select the library you just made in the
listbox on the left.
step 7.) In the center of the form you are in, you should
see a white box with three tabs on top (Classpath, Sources, Javadoc).
Make sure Classpath is selected.
step 8.) On the right , click on the Add Jar/Folder... button.
step 9.) A dialogue box will pop up. Select the directory where your
you put JMF. Add the .jar files from the JMF's lib directory and
click the Add Jar/Folder for that dialog box. Repeat step 8.
When finnished, you should have three .jar files in your newly
created library(I called mine JMF). The files should be jmf.jar,
mediaplayer.jar, and multiplayer.jar.
step 10.) Create a project.
step 11.) In the Projects pane, expand Libraries which you will see
whatever JDK you are using and any other libraries you
happen to be using. Right Click on Libraries there and
click Add Library. A popup window displaying libraries
will show and the one you just created should be in there.
step 12.) Highlight the library you made and click its Add library
button.
You should now be able to use JMF in your apps! I assume you
know about importing the packages in your sourcefiles!!!! ;-)
Have fun whichever way you do! Please don't email me with
dumb questions. Seeya! -
Checking Account and help with code ?
Hi all..my computer hung up on me, so I'm not sure if my last post went through. First of all thank you all for helping me out the other day with my question on the Bank Account. It continues :)
I'm trying to work on each class one by one..when I test my Checking Account, it isn't printing out the correct balance. The string method to print this is coming from the Withdrawal class...so I know it has to be somewhere in there but I can't seem to figure out why it isn't totalling the balance...or how to get it too.
Then when I test my MyBank class, it hangs up on line 63..which I could swear I have written correctly. Again I am getting a NullPointerException and I honestly think I have the line of code written right, but I'm guessing I dont.
Any help would be appreciated.
public abstract class BankAccount {
public static final String bankName = "BrianBank";
protected String custName;
protected String pin;
protected Transaction[] history;
private double balance;
private double amt, amount;
private double bal, initBal;
private int transactions;
private final int MAX_HISTORY = 100;
private int acct;
protected BankAccount(String cname, String cpin, double initBal) {
custName = cname;
pin = cpin;
balance = initBal;
history = new Transaction[MAX_HISTORY];
transactions =0;
public double getBalance() {
return balance;
public void withdraw(double amt) {
history [transactions] = new Withdrawal (bal, amt);
balance = bal;
amount = amt;
balance -= amt;
transactions = transactions + 1;
public void deposit(double amt) {
history [transactions] = new Deposit (bal, amt);
balance = bal;
amount = amt;
balance += amt;
transactions = transactions +1;
// abstract method to return account number
public abstract int getAcctNum();
// abstract method to return a summary of transactions as a string
public abstract String getStatement();
public class CheckingAccount extends BankAccount implements IncursFee
private int transactions;
private double balance, initBal, amt;
private static final int NOFEE_WITHDRAWALS = 10;
private static final double TRANSACTION_FEE = 5.00;
public static final String bankName = "iBank";
public static final int STARTING_ACCOUNT_NUMBER = 10000;
private int checkingAccountNumber = STARTING_ACCOUNT_NUMBER;
private static int accountNumberCounter = STARTING_ACCOUNT_NUMBER;
private String custName;
private String pin;
public CheckingAccount (String cname, String cpin, double initBal)
super (cname, cpin, initBal);
custName = cname;
pin = cpin;
balance = initBal;
accountNumberCounter++;
checkingAccountNumber = accountNumberCounter;
//initialize a count of transactions
transactions = 0;
public double getBalance()
return balance;
public void withdraw(double amt)
super.withdraw (amt);
transactions ++;
public void deposit(double amt)
super.deposit (amt);
transactions ++;
public int getAcctNum ()
return checkingAccountNumber;
public String getStatement ()
int i = 0;
String output = "";
while ( i < history.length && history[i] != null )
output += history.toString () + "\n";
i++;
return output;
public void deductFee(double fee)
if (transactions > NOFEE_WITHDRAWALS)
{ fee = TRANSACTION_FEE *(transactions - NOFEE_WITHDRAWALS);
super.withdraw(fee);
balance -=fee;
transactions = 0;
public interface IncursFee {
public abstract void deductFee(double fee);
public abstract class Transaction {
protected double initBal;
protected double tranAmt;
// constructor
protected Transaction(double bal, double amt) {
initBal = bal;
tranAmt = amt;
abstract public String toString();
public class Withdrawal extends Transaction
private double initBal;
private double amount;
private static NumberFormat fmt = NumberFormat.getCurrencyInstance();
public Withdrawal (double bal, double amt)
super (bal, amt);
initBal = bal;
amount = amt;
public String toString ()
return "Balance : " + fmt.format(initBal) + "\n" + "Withdrawal : " + fmt.format(amount);
import java.text.NumberFormat;
public class Deposit extends Transaction
private double initbal, balance;
private double amount;
private static NumberFormat fmt = NumberFormat.getCurrencyInstance();
public Deposit (double bal, double amt)
super (bal, amt);
initbal = bal;
amount = amt;
public String toString ()
return "Balance : " + fmt.format(initbal) + "\n" + "Deposit : " + fmt.format(amount);
public class TestCheckingAcct {
public static void main(String[] args) {
BankAccount b1 = new CheckingAccount("Harry", "1234", 500.0);
System.out.println (b1.getBalance ());
b1.withdraw(1);
b1.withdraw(1);
b1.withdraw(1);
b1.withdraw(1);
b1.withdraw(1);
b1.deposit(50);
b1.withdraw(1);
b1.withdraw(1);
b1.withdraw(1);
b1.withdraw(1);
b1.withdraw(1);
b1.withdraw(1);
b1.withdraw(1);
b1.deposit(10);
b1.withdraw(1);
System.out.println(b1.getStatement());
// This interface specifies the functionality requirements of a bank
public interface Bank {
public abstract int openNewAccount(String customerName, String customerPIN, String accType, double initDepAmount);
public abstract void processWithdrawal(int accNum, String pin, double amount);
// executes a deposit on the specified acct by the amount
public abstract void processDeposit(int accNum, String pin, double amount);
// returns the balance of acct
public abstract double processBalanceInquiry(int accNum, String pin);
// returns summary of transactions
public abstract String processStatementInquiry(int accNum, String pin);
import java.util.ArrayList;
public class MyBank implements Bank
private ArrayList<BankAccount> savAccounts = new ArrayList<BankAccount>(); //dynamically grows
private ArrayList<BankAccount> chkAccounts = new ArrayList<BankAccount>(); //dynamically grows
private SavingsAccount sav;
private CheckingAccount chk;
private int accNum;
private String customerName, customerPIN, accType, pin;
private double initDepAmount, amount, balance;
public int openNewAccount(String customerName, String customerPIN, String accType, double initDepAmount)
this.customerName = customerName;
this.customerPIN = customerPIN;
this.accType = accType;
this.initDepAmount = initDepAmount;
if ( accType.equals("Savings"))
BankAccount savAcct = new SavingsAccount(customerName, customerPIN, initDepAmount);
try
savAccounts.add(savAcct);
catch (ArrayIndexOutOfBoundsException savAccounts)
return savAcct.getAcctNum();
else
CheckingAccount chkAcct = new CheckingAccount(customerName, customerPIN, initDepAmount);
try
chkAccounts.add(chkAcct);
catch (ArrayIndexOutOfBoundsException chkAccounts)
return chkAcct.getAcctNum();
public void processWithdrawal (int accNum, String pin, double amount)
this.accNum = accNum;
this.pin = pin;
this.amount = amount;
if (accNum >10000 && accNum < 20000)
chk.withdraw (amount);
if (accNum >50000 && accNum <60000)
sav.withdraw (amount);
public void processDeposit (int accNum, String pin, double amount)
this.accNum = accNum;
this.pin = pin;
this.amount = amount;
if (accNum >10000 && accNum < 20000)
chk.deposit (amount);
if (accNum >50000 && accNum <60000)
sav.deposit (amount);
public double processBalanceInquiry (int accNum, String pin)
this.accNum = accNum;
this.pin = pin;
this.balance = 0;
if (accNum >10000 && accNum <20000)
balance = chk.getBalance ();
if (accNum >50000 && accNum <60000)
balance = sav.getBalance ();
return balance;
public String processStatementInquiry(int accNum, String pin)
this.accNum = accNum;
this.pin = pin;
this.statement = "";
if (accNum >10000 && accNum <20000)
statement = chk.getStatement ();
if (accNum >50000 && accNum <60000)
statement= sav.getStatement ();
return statement;Here's some quick code review:
public abstract class BankAccount {
public static final String bankName =
me = "BrianBank";
protected String custName;
protected String pin;
protected Transaction[] history;
private double balance;
private double amt, amount;
private double bal, initBal;
private int transactions;// make MAX_HISTORY private static final, too.
private final int MAX_HISTORY = 100;
private int acct;
protected BankAccount(String cname, String cpin,
pin, double initBal) {
custName = cname;
pin = cpin;
balance = initBal;
history = new Transaction[MAX_HISTORY];
transactions =0;
public double getBalance() {
return balance;
public void withdraw(double amt) {
history [transactions] = new Withdrawal (bal, amt);
balance = bal;
amount = amt;
balance -= amt;// ++transactions above would be elegant.
transactions = transactions + 1;
public void deposit(double amt) {
history [transactions] = new Deposit (bal, amt);
balance = bal;
amount = amt;
balance += amt;
transactions = transactions +1;
// abstract method to return account number// why abstract?
public abstract int getAcctNum();
// abstract method to return a summary of
y of transactions as a string// why abstract?
public abstract String getStatement();
public class CheckingAccount extends BankAccount
implements IncursFee
private int transactions;
private double balance, initBal, amt;
private static final int NOFEE_WITHDRAWALS =
WALS = 10;
private static final double TRANSACTION_FEE =
_FEE = 5.00;
public static final String bankName = "iBank";
public static final int STARTING_ACCOUNT_NUMBER
NUMBER = 10000;
private int checkingAccountNumber =
mber = STARTING_ACCOUNT_NUMBER;
private static int accountNumberCounter =
nter = STARTING_ACCOUNT_NUMBER;// BankAccount has a custName attribute; why does CheckingAccount need
// one if it extends BankAccount?
private String custName;
private String pin;
public CheckingAccount (String cname, String
String cpin, double initBal)
super (cname, cpin, initBal);
custName = cname;
pin = cpin;
balance = initBal;
accountNumberCounter++;
checkingAccountNumber =
tNumber = accountNumberCounter;
//initialize a count of transactions
transactions = 0;
// same as BankAccount - why rewrite it?
public double getBalance()
return balance;
// same as BankAccount - why rewrite it?
public void withdraw(double amt)
super.withdraw (amt);
transactions ++;
// same as BankAccount - why rewrite it?
public void deposit(double amt)
super.deposit (amt);
transactions ++;
// same as BankAccount - why rewrite it?
public int getAcctNum ()
return checkingAccountNumber;
public String getStatement ()
int i = 0;
String output = "";
while ( i < history.length && history[i] !=
ory[i] != null )
output += history.toString () + "\n";
i++;
return output;
public void deductFee(double fee)
if (transactions > NOFEE_WITHDRAWALS)
{ fee = TRANSACTION_FEE *(transactions -
ansactions - NOFEE_WITHDRAWALS);
super.withdraw(fee);
balance -=fee;
transactions = 0;
public interface IncursFee {
public abstract void deductFee(double fee);
public abstract class Transaction {
protected double initBal;
protected double tranAmt;
// constructor
// why protected? make it public.
protected Transaction(double bal, double amt) {
initBal = bal;
tranAmt = amt;
abstract public String toString();
public class Withdrawal extends Transaction
private double initBal;
private double amount;
private static NumberFormat fmt =
= NumberFormat.getCurrencyInstance();
public Withdrawal (double bal, double amt)
super (bal, amt);
initBal = bal;
amount = amt;
public String toString ()
return "Balance : " + fmt.format(initBal) + "\n" +
+ "Withdrawal : " + fmt.format(amount);
import java.text.NumberFormat;
public class Deposit extends Transaction
private double initbal, balance;
private double amount;
private static NumberFormat fmt =
= NumberFormat.getCurrencyInstance();
public Deposit (double bal, double amt)
super (bal, amt);
initbal = bal;
amount = amt;
public String toString ()
return "Balance : " + fmt.format(initbal) + "\n" +
+ "Deposit : " + fmt.format(amount);
public class TestCheckingAcct {
public static void main(String[] args) {
BankAccount b1 = new CheckingAccount("Harry",
, "1234", 500.0);
System.out.println (b1.getBalance ());
b1.withdraw(1);
b1.withdraw(1);
b1.withdraw(1);
b1.withdraw(1);
b1.withdraw(1);
b1.deposit(50);
b1.withdraw(1);
b1.withdraw(1);
b1.withdraw(1);
b1.withdraw(1);
b1.withdraw(1);
b1.withdraw(1);
b1.withdraw(1);
b1.deposit(10);
b1.withdraw(1);
System.out.println(b1.getStatement());
// This interface specifies the functionality
requirements of a bank
public interface Bank {
public abstract int openNewAccount(String
String customerName, String customerPIN, String
accType, double initDepAmount);
public abstract void processWithdrawal(int
(int accNum, String pin, double amount);
// executes a deposit on the specified acct by
t by the amount
public abstract void processDeposit(int accNum,
Num, String pin, double amount);
// returns the balance of acct
public abstract double processBalanceInquiry(int
(int accNum, String pin);
// returns summary of transactions
public abstract String
ring processStatementInquiry(int accNum, String
pin);
import java.util.ArrayList;
public class MyBank implements Bank
private ArrayList<BankAccount> savAccounts =
unts = new ArrayList<BankAccount>(); //dynamically
grows
private ArrayList<BankAccount> chkAccounts =
unts = new ArrayList<BankAccount>(); //dynamically
grows
private SavingsAccount sav;
private CheckingAccount chk;
private int accNum;
private String customerName, customerPIN,
erPIN, accType, pin;
private double initDepAmount, amount, balance;
public int openNewAccount(String customerName,
erName, String customerPIN, String accType, double
initDepAmount)
this.customerName = customerName;
this.customerPIN = customerPIN;
this.accType = accType;
this.initDepAmount = initDepAmount;
if ( accType.equals("Savings"))
BankAccount savAcct = new
vAcct = new SavingsAccount(customerName, customerPIN,
initDepAmount);
try
savAccounts.add(savAcct);
catch (ArrayIndexOutOfBoundsException
Exception savAccounts)
return savAcct.getAcctNum();
else
CheckingAccount chkAcct = new
hkAcct = new CheckingAccount(customerName,
customerPIN, initDepAmount);
try
chkAccounts.add(chkAcct);
catch (ArrayIndexOutOfBoundsException
Exception chkAccounts)
return chkAcct.getAcctNum();
public void processWithdrawal (int accNum,
accNum, String pin, double amount)
this.accNum = accNum;
this.pin = pin;
this.amount = amount;
if (accNum >10000 && accNum < 20000)
chk.withdraw (amount);
if (accNum >50000 && accNum <60000)
sav.withdraw (amount);
public void processDeposit (int accNum, String
String pin, double amount)
this.accNum = accNum;
this.pin = pin;
this.amount = amount;
if (accNum >10000 && accNum < 20000)
chk.deposit (amount);
if (accNum >50000 && accNum <60000)
sav.deposit (amount);
public double processBalanceInquiry (int accNum,
String pin)
this.accNum = accNum;
this.pin = pin;
this.balance = 0;
if (accNum >10000 && accNum <20000)
balance = chk.getBalance ();
if (accNum >50000 && accNum <60000)
balance = sav.getBalance ();
return balance;
public String processStatementInquiry(int accNum,
m, String pin)
this.accNum = accNum;
this.pin = pin;
this.statement = "";
if (accNum >10000 && accNum <20000)
statement = chk.getStatement ();
if (accNum >50000 && accNum <60000)
statement= sav.getStatement ();
return statement;
Very bad style with those brace placements. Pick a style and stick with it. Consistency is the key.
Your code isn't very readable.
You don't have a SavingsAccount here anywhere, even though your MyBank uses one.
You use JDK 1.5 generics yet you've got ArrayList as the static type on those declarations. Better to use the interface type List as the compile time type on the LHS.
You have a lot of compile time problems, and some incomprehensible stuff, but I was able to change it enough to my TestCheckingAcct run to completion. No NPE exceptions.
I'm not sure I agree with your design.
No SavingsAccount. The accounts I have ALL incur fees - no need for a special interface there. Savings accounts are usually interest bearing. That's the way they behave differently from checking accounts. Where do you have that?
You rewrite too much code. If you put behavior in the abstract BankingAccount class (a good idea), the whole idea is that concrete classes that extend BankingAccount don't need to overload any methods whose default behavior is correct for them.
I don't know that I'd have separate Deposit and Withdrawal to implement Transaction. I'd make Transaction concrete and have starting balance, ending balance, and a transaction type String (e.g., "DEPOSIT", "WITHDRAWAL")
It'd be good to see some thought put into exception handling. I don't see an OverdrawnException anywhere. Seems appropriate.
No transfer methods from one account to another. I often do that with my bank.
That's enough to get started. -
Install instructions for Search Modeler and integrating with Apps 11i
Below are all the steps I took for creating integrating Search Modeler with an Oracle E-Business Suite 11.5.10.2 ATG RUP 7 instance called ERNIE.
Much thanks to Oracle Support ( Rajesh Ghosh, Vikas Soolapani and Roger Ford), as this simply wouldn't have been possible without them.
There are a few things in this document that may not be pertinent to your environment if you're doing this. I've made attempts to clarify those possibly optional sections in the documentation.
I've broken the document down into the following multiple parts
o Setting up a new RedHat 4.8 x86 server called ausSEARCHdev (The server is in AUStin, TX, is dedicated to SEARCH, and is for our DEV environment)
o SES (Secure Enterprise Search 10.1.8.2 install
o SES 10.1.8.4 patchset install
o SES CPU patch apply
o Standalone OC4J and ADF installation
o Search Modeler installation and configuration
o Configure ERNIE Apps instance to be on valid self-signed SSL certificate
o Import ERNIE SSL certificate into SES and Search Modeler
using aussearchdev initially
rh4 x86, default oracle build
** htop and collectl are open source free performance monitoring packages we utilize**
--start
install htop and collectl
wget http://dag.wieers.com/rpm/packages/htop/htop-0.7-1.el4.rf.i386.rpm
rpm -ivh htop-0.7-1.el4.rf.i386.rpm
wget http://downloads.sourceforge.net/project/collectl/collectl/collectl-3.4.0-4/collectl-3.4.0-4.noarch.rpm?use_mirror=voxel
rpm -ivh collectl-3.4.0-4.noarch.rpm
chkconfig collectl on
service collectl start
**We still need to install the necessary rpms so that collectl logs are compressed
--end
useradd -u 501 oracle
groupadd -g 504 dba
usermod -G 504 oracle
verification:
[root@aussearchdev ~]# su - oracle
[oracle@aussearchdev ~]$ id
uid=501(oracle) gid=501(oracle) groups=501(oracle),504(dba)
passwd oracle
** /mnt/oraclebackup is a network dumpspot we use to hold Software installs, RPMs, etc
** /mnt/rpms is a network dumpspot we use to hold ISOs for OS software such as Redhat Linux
mkdir /mnt/oraclebackup
mkdir /mnt/rpms
add the following to /etc/fstab
XXXXXXX:/patches/oraclebackup /mnt/oraclebackup nfs defaults,hard,nolock 0 0
XXXXXXX:/esxpress/nfs /mnt/rpms nfs rw,addr=XXX.XXX.XXX.XXX 0 0
mount /mnt/rpms
Next need to install various oracle needed RPMs.
cd /mnt/rpms/rh40_upd8/RedHat/RPMS/
rpm -ivh perl-Compress-Zlib-1.42-1.el4.i386.rpm
rpm -ivh libaio-devel-0.3.105-2.i386.rpm
rpm -ivh sysstat-5.0.5-25.el4.i386.rpm
rpm -ivh unixODBC-devel-2.2.11-1.RHEL4.1.i386.rpm
service collectl restart
cd /tmp
wget http://oss.oracle.com/el4/oracle-validated/oracle-validated-1.0.0-18.el4.i386.rpm
rpm -ivh oracle-validated-1.0.0-18.el4.i386.rpm
Now we should have all the RPMs we need.
cd /etc/sysconfig/oracle-validated
./oracle-validated-verify
cd /var/log/oracle-validated/results
more orakernel.log
uname -a
should return 2.6.9 or higher
rpm -qa|grep gcc-
should return 3.4.3 or higher
rpm -qa|grep glibc
should return 2.3.4-2.9 or higher
rpm -qa|grep make
should return 3.80 or higher
rpm -qa|grep binutils
should return 2.15.92.0.2 or higher
rpm -qa|grep openmotif
should return 2.2.3-9.RHEL4.1 or higher
rpm -qa|grep compat-db
should return 4.1.25-9 or higher
rpm -qa|grep setarch
should return 1.6-1 or higher
cat /proc/sys/kernel/sem
should return 250 32000 100 128 or higher (250 32000 100 142 in our case)
cat /proc/sys/kernel/shmall (1073741824 in our case)
should return 2097152 or higher
cat /proc/sys/kernel/shmmax
should return half the size of physical memory (4294967295 in our case - NO LARGER on 32-bit OS)
cat /proc/sys/kernel/shmmni
should return 4096
cat /proc/sys/fs/file-max
should return 65536 (327679 in our case)
cat /proc/sys/net/ipv4/ip_local_port_range
should return 1024 65000
values in /etc/security/limits.conf set by oracle-validated rpm, no changes necessary
add the following line to /etc/pam.d/login
session required /lib/security/pam_limits.so
add the following to /etc/profile
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
mkdir -p /d01/oracle
chmod 777 /d01/oracle
init 6 the box (aka reboot)
Time to start the SES 10.1.8.2 installer
running SES 10.1.8.2 installer
as oracle
cd /mnt/oraclebackup/deathstar_patches/SES/SES10182
./runInstaller
search server name sesprod
administrative password XXXXXXXX for dev,
http port 7777
destination path /d01/oracle/10.1.8/sesdev (dev)
data storage path /d01/oracle/sesdevdata (dev)
next
inventory /d01/oracle/oraInventory
dba group
run orainstroot.sh as requested
continue
all tests should pass, continue
finished clean
tried logging in to admin console at http://aussearchdev:7777/search/admin - worked fine
tried bringing up search query at http://aussearchdev:7777/search/query/search - worked fine
Now we need to get to 10.1.8.4 of SES
(yes, you need to keep the system up)
cd /mnt/oraclebackup/deathstar_patches/SES/SES10184/ses_10184pst_linux/
./runInstaller
Destination, choose sesdev
Next
Patchset successful
tried logging in to admin console at http://aussearchdev:7777/search/admin - worked fine
tried bringing up search query at http://aussearchdev:7777/search/query/search - worked fine
Apply CPU Patch to SES
CPU JAN 10 says patch 9119261 is required - but patch requires extended support contract
CPU OCT 09 says patch 8836540 is required - but patch requires extended support contract
CPU JUL 09 says patch 8534394 is required - but patch requires extended support contract
CPU APR 09 says patch 8290534 is required - and you can actually download it
Need opatch from 6880880
cp -r /mnt/oraclebackup/deathstar_patches/SES/CPUAPR09/OPatch $ORACLE_HOME
export PATH=$ORACLE_HOME/OPatch:$PATH
shut down everything
cd $ORACLE_HOME/bin
./searchctl stopall
cd /mnt/oraclebackup/deathstar_patches/SES/CPUAPR09/8290534
opatch apply
cd $ORACLE_HOME/cpu/CPUApr2009
**Note: your sys password is what you set for your administrative password above
sqlplus "sys/XXXXXX" as sysdba;
startup
@catcpu
@?/rdbms/admin/utlrp
shutdown immediate
exit
cd /d01/oracle/10.1.8/sesdev/cpu/view_recompile/
sqlplus "sys/XXXXXXX" as sysdba;
startup upgrade;
@view_recompile_jan2008cpu.sql
@?/rdbms/admin/utlrp
shutdown immediate
cd /d01/oracle/10.1.8/sesdev/jdk/jre/lib/ext
mv mail.jar $HOME/mail.jar.backup02222010
mv mailapi.jar $HOME/mailapi.jar.back02222010
cp /d01/oracle/10.1.8/sesdev/search/lib/mail.jar .
SES 10.1.8.4 is now installed and updated with latest available CPU
tried logging in to admin console at http://aussearchdev:7777/search/admin - worked fine
tried bringing up search query at http://aussearchdev:7777/search/query/search - worked fine
we're going to go with the standalone OC4j 10.1.3.3 and Oracle ADF 10.1.3.3 method
The URLs for these products are
http://blogs.oracle.com/ebssearch/2009/10/available_now_oracle_search_modeler_11_for_oracle_e-business_suite_11i.html
and specifically
OC4J - http://download.oracle.com/otn/java/oc4j/101330/oc4j_extended_101330.zip
ADF - http://www.oracle.com/technology/software/products/jdev/htdocs/adfinstaller10133.html
OC4J install
First you need to have Java 1.5 on the machine. Latest is 1.5.0_22. Package is in /mnt/oraclebackup/deathstar_patches/SES
as root on aussearchdev
cd /usr/local
cp /mnt/oraclebackup/deathstar_patches/SES/jdk-1_5_0_22-linux-i586.bin .
chmod 700 jdk-1_5_0_22-linux-i586.bin
./jdk-1_5_0_22-linux-i586.bin
yes
install OC4J just by copying over the directory
as oracle on aussearchdev
mkdir -p /d01/oracle/oc4j
cd /d01/oracle/oc4j
cp -r /mnt/oraclebackup/deathstar_patches/SES/oc4j/* .
ADF install
vi /mnt/oraclebackup/deathstar_patches/SES/adf/adfinstaller.properties
change the following
OracleHome = /mnt/oraclebackup/deathstar_patches/SES/adf
DesHome = /d01/oracle/oc4j/
type = OC4J
as root
cd /usr/bin
rm java
(yes)
ln -s /usr/local/jdk1.5.0_22/bin/java
su - oracle
java -version should now return 1.5.0_22
export JAVA_HOME=/usr/local/jdk1.5.0_22
cd /mnt/oraclebackup/deathstar_patches/SES/adf
java -jar runinstaller.jar -version
returns The version for the ADF libraries being installed is 10.1.3.41.57 - yes, that is apparently 10.1.3.3.
java -jar runinstaller.jar adfinstaller.properties
output looks good, do not be concerned by
WARNING: 'Could not delete: /d01/oracle/oc4j/BC4J/redist/bc4j' whilst deleting bc4j application
WARNING: 'Could not delete: /d01/oracle/oc4j/BC4J/redist/datatags' whilst deleting datatags application
as it was trying to delete the old version that didn't exist
Start OC4J
as oracle on aussearchdev
export JAVA_HOME=/usr/local/jdk1.5.0_22
export ORACLE_HOME=/d01/oracle/oc4j
cd $ORACLE_HOME/bin
./oc4j -start
you will be prompted for password - we're setting it. use XXXXXXXXXX
after it's up, kill it (ctrl-c) and restart it with
nohup ./oc4j -start &
last lines in nohup.out is
Starting OC4J from /d01/oracle/oc4j/j2ee/home ...
10/02/23 03:22:38 Oracle Containers for J2EE 10g (10.1.3.3.0) initialized
So now on to search modeler installation, going by Installation steps in Note 781366.1
8326128 - This is not a patch to be applied to the Apps, keep reading
as oracle on aussearchdev
cd /mnt/oraclebackup/deathstar_patches/SES/8326128
mkdir -p /d01/oracle/oc4j/uploaded
vi build.properties, changing
installation.type=OC4J
oracle.home=/d01/oracle/oc4j
deploy.server=aussearchdev.domainname.com
deploy.port=23791
web.port=7777
password=XXXXXXXXX
extra.classpath=/d01/oracle/oc4j/uploaded
now set the following environment values in your ssh session
export ORACLE_HOME=/d01/oracle/oc4j
export JAVA_HOME=/usr/local/jdk1.5.0_22
export PATH=$ORACLE_HOME/ant/bin:$ORACLE_HOME/bin:$PATH
ant main
whole bunch of stuff to screen, errors due to undeploy something that doesn't exist. Finished after a minute with
BUILD SUCCESSFUL
Total time: 58 seconds
Now on to post install steps
restart OC4j
cd $ORACLE_HOME/bin
./modeler.sh -shutdown -port 23791 -password r*l*r*0*
export ORACLE_HOME=/d01/oracle/oc4j
export JAVA_HOME=/usr/local/jdk1.5.0_22
export PATH=$ORACLE_HOME/ant/bin:$ORACLE_HOME/bin:$PATH
nohup ./modeler.sh -start &
end of nohup.out should show
Starting OC4J from /d01/oracle/oc4j/j2ee/home ...
Try going to http://aussearchdev:8888/modeler/faces/ModelerHome.jsp
Should get login screen, but wait, we haven't installed Oracle Apps interface yet...
Next let's do the Apps side of things
Going by note 953378.1
Using ERNIE (a development instance of E-Business Suite running 11.5.10.2 ATG RUP 7)
as applmgr on ausernieapp (ausernieapp is our app tier)
shut down apps services
apps patch 8225631
verify all the pre-req patches are in ERNIE
select * from ad_bugs where bug_number = '5903765';
select * from ad_bugs where bug_number = '6372396';
select * from ad_bugs where bug_number = '3219567';
select * from ad_bugs where bug_number = '3264822';
select * from ad_bugs where bug_number = '3261254';
select * from ad_bugs where bug_number = '5161676';
select * from ad_bugs where bug_number = '3036401';
select * from ad_bugs where bug_number = '3263588';
select * from ad_bugs where bug_number = '3264818';
select * from ad_bugs where bug_number = '3218526';
select * from ad_bugs where bug_number = '3263645';
select * from ad_bugs where bug_number = '4206794';
select * from ad_bugs where bug_number = '3262486';
select * from ad_bugs where bug_number = '3261243';
select * from ad_bugs where bug_number = '2614213';
select * from ad_bugs where bug_number = '3262159';
select * from ad_bugs where bug_number = '2819091';
select * from ad_bugs where bug_number = '3412795';
patch went in smooth
Log in to ERNIE Apps GUI as sysadmin user responsibility
Give users such as sysadmin FND Search Crawler responsibility
Go to system profile options, set
set FND: Search Enabling Flag to Y at site level
as applmgr on ausernieapp
cd /d01/oracle/ernieappl/fnd/11.5.0/patch/115/sql
sqlplus apps/$APPS_PWD @AFSRCHCF
Enter SES endpoint URL [e.g. http://ap637atg.us.oracle.com:7780]: http://aussearchdev.domainname.com:7777
Enter Apps Admin username [e.g. sysadmin]: sysadmin
Enter Apps Admin password: sysadmin_password
Enter SES Admin username [e.g. eqsys]: eqsys
Enter SES Admin password: eqsyspassword <-- This is the same as sys's password
on aussearchdev as oracle
had to kill modeler and start all the processes, so
kill -9 the modeler oc4j process, then
cd $ORACLE_HOME/bin
./searchctl startall
enter the password when prompted
in IE browser go to
http://aussearchdev.domainname.com:7777/search/admin
log in with eqsys password
global settings tab
identity management setup
click circle next to oracle.search.plugin.security.identity.ebs.EBS12IdentityPliginMgr
(yes, we're going with 12 even though we use Oracle Apps 11i)
http end point https://ausernieapp.domainname.com:8443/webservices/AppSearch/SecurityService
username sysadmin
password XXXXXXX
finish
Global Settings
Federation Trusted Entitites
####entity name sysadmin
####Entity Password XXXXXXXX
According to web conference with Oracle, this should NOT be eqsys but instead be sysadmin from above.
Select the Use Entity Plug-in for authentication check box
add
Trying to go to http://aussearchdev.domainname.com:7777/search/query/search and login (sysadmin / password)
stop midtier on both SES and Apps
cd $ORACLE_HOME/bin
./searchctl stopall
./adstpall.sh apps/$APPS_PWD on EBS app tier
start midtier on both SES and Apps
cd $ORACLE_HOME/bin
./searchctl startall
./adstrtal.sh apps/$APPS_PWD on EBS app tier
Now try and log in to Oracle SES user interface to verify the configuration
http://aussearchdev.domainname.com:7777/search/query
Now start up modeler again
export JAVA_HOME=/usr/local/jdk1.5.0_22
export ORACLE_HOME=/d01/oracle/oc4j
export PATH=$ORACLE_HOME/bin:$PATH
cd $ORACLE_HOME/bin
nohup ./modeler.sh -start &
Works now.
Now go to http://aussearchdev.domainname.com:8888/modeleradmin/AdminHome.jsp log in as oc4jadmin/XXXXXXX
Configure new target
Target Type 11i
Description ERNIE
Name ERNIE
EBS Database Host Name auserniedb
EBS Database Port 1521
EBS Database SID ERNIE
username apps
password XXXXXXXXx
oc4jadmin XXXXXXXx
export JAVA_HOME=/usr/local/jdk1.5.0_22
export ORACLE_HOME=/d01/oracle/oc4j
export PATH=$ORACLE_HOME/bin:$PATH
cd $ORACLE_HOME/j2ee/home
java -jar admin_client.jar deployer:oc4j:aussearchdev oc4jadmin XXXXXXXXX -addDataSourceConnectionPool -name "ERNIE2-pool" -factoryClass "oracle.jdbc.pool.OracleDataSource" -dbUser "apps" -dbPassword "XXXXXXX" -url "jdbc:oracle:thin:@auserniedb.domainname.com:1521:ERNIE" -applicationName appsearch
java -jar admin_client.jar deployer:oc4j:aussearchdev oc4jadmin XXXXXXX -addManagedDataSource -name "ERNIEDS" -jndiLocation "jdbc/ERNIEDS" -connectionPoolName "ERNIE2-pool" -applicationName appsearch
http://aussearchdev.domainname.com:8888/modeler/faces/ModelerHome.jsp
So, creating a self signed SSL certificate for ERNIE EBS instance (this will not work if you use an SSL certificate for another server like say, PROD)
doing this on ausernieapp
openssl genrsa -des3 -out ausernieapp.key 1024
PEM key is ausernieapp
openssl req -new -key ausernieapp.key -out ausernieapp.csr
PEM key is ausernieapp
Country US
State Texas
Locality Austin
Organization Name Corporation
Organizational Unit Name Information Technology
Common Name ausernieapp.domainname.com
Email address [email protected]
No challenge password
No optional company name
Now let's remove the passphrase from the key
cp ausernieapp.key ausernieapp.key.orig
openssl rsa -in ausernieapp.key.orig -out ausernieapp.key
Now let's generate a self-signed certificate
openssl x509 -req -days 1000 -in ausernieapp.csr -signkey ausernieapp.key -out ausernieapp.crt
Install the private key and certificate
cd $IAS_ORACLE_HOME/Apache/Apache/conf/ssl.crt
cp server.crt server.crt.backup.03102010
chown applmgr:applmgr server.crt.backup.03102010
cp $HOME/ausernieapp.crt /d01/oracle/ernieora/new/iAS/Apache/Apache/conf/ssl.crt/server.crt
cd $IAS_ORACLE_HOME/Apache/Apache/conf/ssl.key/
cp server.key server.key.backup.03102010
cp $HOME/ausernieapp.key /d01/oracle/ernieora/new/iAS/Apache/Apache/conf/ssl.key/server.key
chown applmgr:applmgr server.key.backup.03102010
bounce apache as applmgr
cd /d01/oracle/erniecomn/admin/scripts/ERNIE_ausernieapp
./adapcctl.sh stop
./adapcctl.sh start
In IE
https://ausernieapp.domainname.com:8443
Continue
Click on Certificate Error next to URL bar
Install Certificate -> Next-> Place all certificates in the following store -> trusted root certificate authorities ->finish
close browser, back to https://ausernieapp.domainname.com:8443
no errors,
Next step will be to import key into the SES and Search modelers
as oracle on aussearchdev
cd /d01/oracle/10.1.8/sesdev/jdk/jre/lib/security/
cp cacerts cacerts.backup.03102010
scp root@ausernieapp:/root/ausernieapp.crt .
export LANG=c
export PATH=$ORACLE_HOME/jdk/bin:$PATH
keytool -keystore ./cacerts -storepass changeit -alias rootausernieapp -import -trustcacerts -file ausernieapp.crt
--output
Owner: [email protected], CN=ausernieapp.domainname.com, OU=Information Technology, O=Corporation, L=Austin, ST=Texas, C=US
Issuer: [email protected], CN=ausernieapp.domainname.com, OU=Information Technology, O=Corporation, L=Austin, ST=Texas, C=US
Serial number: b4e92089cf73076f
Valid from: Wed Mar 10 13:22:38 CST 2010 until: Tue Dec 04 13:22:38 CST 2012
Certificate fingerprints:
MD5: 2C:6B:EE:1A:63:6D:XX:A6:05:90:F6:XX:DD:88:F7:80
SHA1: F8:DC:E5:2A:3E:68:XX:E1:EA:E4:75:AE:CC:4F:4A:10:2F:8A:FE:9B
Trust this certificate? [no]: yes
Certificate was added to keystore
Now load our cert
keytool -keystore ./cacerts -import -trustcacerts -file ausernieapp.crt
keytool -list -v -keystore ./cacerts now shows
Alias name: rootausernieapp
Creation date: Mar 10, 2010
Entry type: trustedCertEntry
Owner: [email protected], CN=ausernieapp.domainname.com, OU=Information Technology, O=Corporation, L=Austin, ST=Texas, C=US
Issuer: [email protected], CN=ausernieapp.domainname.com, OU=Information Technology, O=Corporation, L=Austin, ST=Texas, C=US
Serial number: b4e92089cf73076f
Valid from: Wed Mar 10 13:22:38 CST 2010 until: Tue Dec 04 13:22:38 CST 2012
Certificate fingerprints:
MD5: 2C:6B:EE:1A:63:6D:CB:XX:05:90:F6:78:DD:88:F7:80
SHA1: F8:DC:E5:2A:3E:68:9C:CE:EA:4E:75:AE:CC:FA:9E:10:2F:8A:FE:9B
Now we need to load it into the search modeler keystore
as root on aussearchdev
export JAVA_HOME=/usr/local/jdk1.5.0_22/
export PATH=$JAVA_HOME/bin:$PATH
cd /usr/local/jdk1.5.0_22/jre/lib/security/
scp root@ausernieapp:/root/ausernieapp.crt .
output
keytool -keystore ./cacerts -import -trustcacerts -file ausernieapp.crt
Enter keystore password: changeit
Owner: [email protected], CN=ausernieapp.domainname.com, OU=Information Technology, O=Corporation, L=Austin, ST=Texas, C=US
Issuer: [email protected], CN=ausernieapp.domainname.com, OU=Information Technology, O=Corporation, L=Austin, ST=Texas, C=US
Serial number: b4e92089cf73076f
Valid from: Wed Mar 10 13:22:38 CST 2010 until: Tue Dec 04 13:22:38 CST 2012
Certificate fingerprints:
MD5: 2C:6B:EE:1A:63:6D:CB:A1:05:90:F6:78:DD:88:F7:80
SHA1: F8:DC:E5:2A:3E:68:9C:CE:EA:4E:75:AE:CC:4F:9E:10:2F:8A:FE:9B
Trust this certificate? [no]: yes
Certificate was added to keystore
[root@aussearchdev security]#
output
For troubleshooting, if you go to end of /d01/oracle/10.1.8/sesdev/search/data/config/crawler.dat
you can modify the logLevel from the default of 4 to 2 to get better debug data. No services need to be restarted, it will become active with the next crawl.
While talking with Oracle, they mentioned the following patches
The patches identified 8321527 and 7586924 are SES patches to help with indexing
They also identified patch 9103851 which is an apps patch dealing with responsibilities <-- This is not yet available
Applying patch 7586924
as oracle on aussearchdev
cd $ORACLE_HOME/bin
./searchctl stopall
cd /mnt/oraclebackup/deathstar_patches/SES/post_patches/7586924
opatch apply
cd $ORACLE_HOME/bin
./searchctl startall
sqlplus eqsys/XXXXXX@SESDEV
define SCH_NAME=EQSYS
define PROXY_USER=EQPROXY
define INST_USER=EQ_TEST
@$ORACLE_HOME/search/admin/eq0pkh.sql
@$ORACLE_HOME/search/admin/eq0plb.sql
@$ORACLE_HOME/search/admin/eq0bug_7586924.sql
cd $ORACLE_HOME/search/data/config/
cp crawler.dat crawler.dat.backup.03102010
vi crawler.dat
We're using the Oracle E-Business Suite R12 crawler, so we will add the line
USE_IN_MEMORY_QUEUE Oracle E-Business Suite R12
as the line immediately preceding IMPORT -
so the end of the file looks like this:
# system properies: separated by space for multiple system properties or define multiple SYSTEM_PROPERTIES
# logLevel values: DEBUG(2), INFO(4), WARN(6), ERROR(8), FATAL(10)
SYSTEM_PROPERTIES -Doracle.search.logLevel=4 -Doracle.search.log=oracle.search.util.Log4jImpl
USE_IN_MEMORY_QUEUE Oracle E-Business Suite R12
IMPORT -
Now on to patch 8321527
cd /mnt/oraclebackup/deathstar_patches/SES/post_patches/8321527
cd $ORACLE_HOME/bin
./searchctl stopall
cd -
opatch apply
cd $ORACLE_HOME/bin
./searchctl startall
sqlplus eqsys/XXXXXXX@SESDEV
define SCH_NAME=EQSYS
define PROXY_USER=EQPROXY
select object_name from user_objects where status = 'INVALID';
--should be no rows selected
@$ORACLE_HOME/search/admin/eq0pkh.sql
@$ORACLE_HOME/search/admin/eq0plb.sql
--should be no rows selected
restart SES
cd -
./searchctl stopall
./searchctl startallBelow are all the steps I took for creating integrating Search Modeler with an Oracle E-Business Suite 11.5.10.2 ATG RUP 7 instance called ERNIE.
Much thanks to Oracle Support ( Rajesh Ghosh, Vikas Soolapani and Roger Ford), as this simply wouldn't have been possible without them.
There are a few things in this document that may not be pertinent to your environment if you're doing this. I've made attempts to clarify those possibly optional sections in the documentation.
I've broken the document down into the following multiple parts
o Setting up a new RedHat 4.8 x86 server called ausSEARCHdev (The server is in AUStin, TX, is dedicated to SEARCH, and is for our DEV environment)
o SES (Secure Enterprise Search 10.1.8.2 install
o SES 10.1.8.4 patchset install
o SES CPU patch apply
o Standalone OC4J and ADF installation
o Search Modeler installation and configuration
o Configure ERNIE Apps instance to be on valid self-signed SSL certificate
o Import ERNIE SSL certificate into SES and Search Modeler
using aussearchdev initially
rh4 x86, default oracle build
** htop and collectl are open source free performance monitoring packages we utilize**
--start
install htop and collectl
wget http://dag.wieers.com/rpm/packages/htop/htop-0.7-1.el4.rf.i386.rpm
rpm -ivh htop-0.7-1.el4.rf.i386.rpm
wget http://downloads.sourceforge.net/project/collectl/collectl/collectl-3.4.0-4/collectl-3.4.0-4.noarch.rpm?use_mirror=voxel
rpm -ivh collectl-3.4.0-4.noarch.rpm
chkconfig collectl on
service collectl start
**We still need to install the necessary rpms so that collectl logs are compressed
--end
useradd -u 501 oracle
groupadd -g 504 dba
usermod -G 504 oracle
verification:
[root@aussearchdev ~]# su - oracle
[oracle@aussearchdev ~]$ id
uid=501(oracle) gid=501(oracle) groups=501(oracle),504(dba)
passwd oracle
** /mnt/oraclebackup is a network dumpspot we use to hold Software installs, RPMs, etc
** /mnt/rpms is a network dumpspot we use to hold ISOs for OS software such as Redhat Linux
mkdir /mnt/oraclebackup
mkdir /mnt/rpms
add the following to /etc/fstab
XXXXXXX:/patches/oraclebackup /mnt/oraclebackup nfs defaults,hard,nolock 0 0
XXXXXXX:/esxpress/nfs /mnt/rpms nfs rw,addr=XXX.XXX.XXX.XXX 0 0
mount /mnt/rpms
Next need to install various oracle needed RPMs.
cd /mnt/rpms/rh40_upd8/RedHat/RPMS/
rpm -ivh perl-Compress-Zlib-1.42-1.el4.i386.rpm
rpm -ivh libaio-devel-0.3.105-2.i386.rpm
rpm -ivh sysstat-5.0.5-25.el4.i386.rpm
rpm -ivh unixODBC-devel-2.2.11-1.RHEL4.1.i386.rpm
service collectl restart
cd /tmp
wget http://oss.oracle.com/el4/oracle-validated/oracle-validated-1.0.0-18.el4.i386.rpm
rpm -ivh oracle-validated-1.0.0-18.el4.i386.rpm
Now we should have all the RPMs we need.
cd /etc/sysconfig/oracle-validated
./oracle-validated-verify
cd /var/log/oracle-validated/results
more orakernel.log
uname -a
should return 2.6.9 or higher
rpm -qa|grep gcc-
should return 3.4.3 or higher
rpm -qa|grep glibc
should return 2.3.4-2.9 or higher
rpm -qa|grep make
should return 3.80 or higher
rpm -qa|grep binutils
should return 2.15.92.0.2 or higher
rpm -qa|grep openmotif
should return 2.2.3-9.RHEL4.1 or higher
rpm -qa|grep compat-db
should return 4.1.25-9 or higher
rpm -qa|grep setarch
should return 1.6-1 or higher
cat /proc/sys/kernel/sem
should return 250 32000 100 128 or higher (250 32000 100 142 in our case)
cat /proc/sys/kernel/shmall (1073741824 in our case)
should return 2097152 or higher
cat /proc/sys/kernel/shmmax
should return half the size of physical memory (4294967295 in our case - NO LARGER on 32-bit OS)
cat /proc/sys/kernel/shmmni
should return 4096
cat /proc/sys/fs/file-max
should return 65536 (327679 in our case)
cat /proc/sys/net/ipv4/ip_local_port_range
should return 1024 65000
values in /etc/security/limits.conf set by oracle-validated rpm, no changes necessary
add the following line to /etc/pam.d/login
session required /lib/security/pam_limits.so
add the following to /etc/profile
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
mkdir -p /d01/oracle
chmod 777 /d01/oracle
init 6 the box (aka reboot)
Time to start the SES 10.1.8.2 installer
running SES 10.1.8.2 installer
as oracle
cd /mnt/oraclebackup/deathstar_patches/SES/SES10182
./runInstaller
search server name sesprod
administrative password XXXXXXXX for dev,
http port 7777
destination path /d01/oracle/10.1.8/sesdev (dev)
data storage path /d01/oracle/sesdevdata (dev)
next
inventory /d01/oracle/oraInventory
dba group
run orainstroot.sh as requested
continue
all tests should pass, continue
finished clean
tried logging in to admin console at http://aussearchdev:7777/search/admin - worked fine
tried bringing up search query at http://aussearchdev:7777/search/query/search - worked fine
Now we need to get to 10.1.8.4 of SES
(yes, you need to keep the system up)
cd /mnt/oraclebackup/deathstar_patches/SES/SES10184/ses_10184pst_linux/
./runInstaller
Destination, choose sesdev
Next
Patchset successful
tried logging in to admin console at http://aussearchdev:7777/search/admin - worked fine
tried bringing up search query at http://aussearchdev:7777/search/query/search - worked fine
Apply CPU Patch to SES
CPU JAN 10 says patch 9119261 is required - but patch requires extended support contract
CPU OCT 09 says patch 8836540 is required - but patch requires extended support contract
CPU JUL 09 says patch 8534394 is required - but patch requires extended support contract
CPU APR 09 says patch 8290534 is required - and you can actually download it
Need opatch from 6880880
cp -r /mnt/oraclebackup/deathstar_patches/SES/CPUAPR09/OPatch $ORACLE_HOME
export PATH=$ORACLE_HOME/OPatch:$PATH
shut down everything
cd $ORACLE_HOME/bin
./searchctl stopall
cd /mnt/oraclebackup/deathstar_patches/SES/CPUAPR09/8290534
opatch apply
cd $ORACLE_HOME/cpu/CPUApr2009
**Note: your sys password is what you set for your administrative password above
sqlplus "sys/XXXXXX" as sysdba;
startup
@catcpu
@?/rdbms/admin/utlrp
shutdown immediate
exit
cd /d01/oracle/10.1.8/sesdev/cpu/view_recompile/
sqlplus "sys/XXXXXXX" as sysdba;
startup upgrade;
@view_recompile_jan2008cpu.sql
@?/rdbms/admin/utlrp
shutdown immediate
cd /d01/oracle/10.1.8/sesdev/jdk/jre/lib/ext
mv mail.jar $HOME/mail.jar.backup02222010
mv mailapi.jar $HOME/mailapi.jar.back02222010
cp /d01/oracle/10.1.8/sesdev/search/lib/mail.jar .
SES 10.1.8.4 is now installed and updated with latest available CPU
tried logging in to admin console at http://aussearchdev:7777/search/admin - worked fine
tried bringing up search query at http://aussearchdev:7777/search/query/search - worked fine
we're going to go with the standalone OC4j 10.1.3.3 and Oracle ADF 10.1.3.3 method
The URLs for these products are
http://blogs.oracle.com/ebssearch/2009/10/available_now_oracle_search_modeler_11_for_oracle_e-business_suite_11i.html
and specifically
OC4J - http://download.oracle.com/otn/java/oc4j/101330/oc4j_extended_101330.zip
ADF - http://www.oracle.com/technology/software/products/jdev/htdocs/adfinstaller10133.html
OC4J install
First you need to have Java 1.5 on the machine. Latest is 1.5.0_22. Package is in /mnt/oraclebackup/deathstar_patches/SES
as root on aussearchdev
cd /usr/local
cp /mnt/oraclebackup/deathstar_patches/SES/jdk-1_5_0_22-linux-i586.bin .
chmod 700 jdk-1_5_0_22-linux-i586.bin
./jdk-1_5_0_22-linux-i586.bin
yes
install OC4J just by copying over the directory
as oracle on aussearchdev
mkdir -p /d01/oracle/oc4j
cd /d01/oracle/oc4j
cp -r /mnt/oraclebackup/deathstar_patches/SES/oc4j/* .
ADF install
vi /mnt/oraclebackup/deathstar_patches/SES/adf/adfinstaller.properties
change the following
OracleHome = /mnt/oraclebackup/deathstar_patches/SES/adf
DesHome = /d01/oracle/oc4j/
type = OC4J
as root
cd /usr/bin
rm java
(yes)
ln -s /usr/local/jdk1.5.0_22/bin/java
su - oracle
java -version should now return 1.5.0_22
export JAVA_HOME=/usr/local/jdk1.5.0_22
cd /mnt/oraclebackup/deathstar_patches/SES/adf
java -jar runinstaller.jar -version
returns The version for the ADF libraries being installed is 10.1.3.41.57 - yes, that is apparently 10.1.3.3.
java -jar runinstaller.jar adfinstaller.properties
output looks good, do not be concerned by
WARNING: 'Could not delete: /d01/oracle/oc4j/BC4J/redist/bc4j' whilst deleting bc4j application
WARNING: 'Could not delete: /d01/oracle/oc4j/BC4J/redist/datatags' whilst deleting datatags application
as it was trying to delete the old version that didn't exist
Start OC4J
as oracle on aussearchdev
export JAVA_HOME=/usr/local/jdk1.5.0_22
export ORACLE_HOME=/d01/oracle/oc4j
cd $ORACLE_HOME/bin
./oc4j -start
you will be prompted for password - we're setting it. use XXXXXXXXXX
after it's up, kill it (ctrl-c) and restart it with
nohup ./oc4j -start &
last lines in nohup.out is
Starting OC4J from /d01/oracle/oc4j/j2ee/home ...
10/02/23 03:22:38 Oracle Containers for J2EE 10g (10.1.3.3.0) initialized
So now on to search modeler installation, going by Installation steps in Note 781366.1
8326128 - This is not a patch to be applied to the Apps, keep reading
as oracle on aussearchdev
cd /mnt/oraclebackup/deathstar_patches/SES/8326128
mkdir -p /d01/oracle/oc4j/uploaded
vi build.properties, changing
installation.type=OC4J
oracle.home=/d01/oracle/oc4j
deploy.server=aussearchdev.domainname.com
deploy.port=23791
web.port=7777
password=XXXXXXXXX
extra.classpath=/d01/oracle/oc4j/uploaded
now set the following environment values in your ssh session
export ORACLE_HOME=/d01/oracle/oc4j
export JAVA_HOME=/usr/local/jdk1.5.0_22
export PATH=$ORACLE_HOME/ant/bin:$ORACLE_HOME/bin:$PATH
ant main
whole bunch of stuff to screen, errors due to undeploy something that doesn't exist. Finished after a minute with
BUILD SUCCESSFUL
Total time: 58 seconds
Now on to post install steps
restart OC4j
cd $ORACLE_HOME/bin
./modeler.sh -shutdown -port 23791 -password r*l*r*0*
export ORACLE_HOME=/d01/oracle/oc4j
export JAVA_HOME=/usr/local/jdk1.5.0_22
export PATH=$ORACLE_HOME/ant/bin:$ORACLE_HOME/bin:$PATH
nohup ./modeler.sh -start &
end of nohup.out should show
Starting OC4J from /d01/oracle/oc4j/j2ee/home ...
Try going to http://aussearchdev:8888/modeler/faces/ModelerHome.jsp
Should get login screen, but wait, we haven't installed Oracle Apps interface yet...
Next let's do the Apps side of things
Going by note 953378.1
Using ERNIE (a development instance of E-Business Suite running 11.5.10.2 ATG RUP 7)
as applmgr on ausernieapp (ausernieapp is our app tier)
shut down apps services
apps patch 8225631
verify all the pre-req patches are in ERNIE
select * from ad_bugs where bug_number = '5903765';
select * from ad_bugs where bug_number = '6372396';
select * from ad_bugs where bug_number = '3219567';
select * from ad_bugs where bug_number = '3264822';
select * from ad_bugs where bug_number = '3261254';
select * from ad_bugs where bug_number = '5161676';
select * from ad_bugs where bug_number = '3036401';
select * from ad_bugs where bug_number = '3263588';
select * from ad_bugs where bug_number = '3264818';
select * from ad_bugs where bug_number = '3218526';
select * from ad_bugs where bug_number = '3263645';
select * from ad_bugs where bug_number = '4206794';
select * from ad_bugs where bug_number = '3262486';
select * from ad_bugs where bug_number = '3261243';
select * from ad_bugs where bug_number = '2614213';
select * from ad_bugs where bug_number = '3262159';
select * from ad_bugs where bug_number = '2819091';
select * from ad_bugs where bug_number = '3412795';
patch went in smooth
Log in to ERNIE Apps GUI as sysadmin user responsibility
Give users such as sysadmin FND Search Crawler responsibility
Go to system profile options, set
set FND: Search Enabling Flag to Y at site level
as applmgr on ausernieapp
cd /d01/oracle/ernieappl/fnd/11.5.0/patch/115/sql
sqlplus apps/$APPS_PWD @AFSRCHCF
Enter SES endpoint URL [e.g. http://ap637atg.us.oracle.com:7780]: http://aussearchdev.domainname.com:7777
Enter Apps Admin username [e.g. sysadmin]: sysadmin
Enter Apps Admin password: sysadmin_password
Enter SES Admin username [e.g. eqsys]: eqsys
Enter SES Admin password: eqsyspassword <-- This is the same as sys's password
on aussearchdev as oracle
had to kill modeler and start all the processes, so
kill -9 the modeler oc4j process, then
cd $ORACLE_HOME/bin
./searchctl startall
enter the password when prompted
in IE browser go to
http://aussearchdev.domainname.com:7777/search/admin
log in with eqsys password
global settings tab
identity management setup
click circle next to oracle.search.plugin.security.identity.ebs.EBS12IdentityPliginMgr
(yes, we're going with 12 even though we use Oracle Apps 11i)
http end point https://ausernieapp.domainname.com:8443/webservices/AppSearch/SecurityService
username sysadmin
password XXXXXXX
finish
Global Settings
Federation Trusted Entitites
####entity name sysadmin
####Entity Password XXXXXXXX
According to web conference with Oracle, this should NOT be eqsys but instead be sysadmin from above.
Select the Use Entity Plug-in for authentication check box
add
Trying to go to http://aussearchdev.domainname.com:7777/search/query/search and login (sysadmin / password)
stop midtier on both SES and Apps
cd $ORACLE_HOME/bin
./searchctl stopall
./adstpall.sh apps/$APPS_PWD on EBS app tier
start midtier on both SES and Apps
cd $ORACLE_HOME/bin
./searchctl startall
./adstrtal.sh apps/$APPS_PWD on EBS app tier
Now try and log in to Oracle SES user interface to verify the configuration
http://aussearchdev.domainname.com:7777/search/query
Now start up modeler again
export JAVA_HOME=/usr/local/jdk1.5.0_22
export ORACLE_HOME=/d01/oracle/oc4j
export PATH=$ORACLE_HOME/bin:$PATH
cd $ORACLE_HOME/bin
nohup ./modeler.sh -start &
Works now.
Now go to http://aussearchdev.domainname.com:8888/modeleradmin/AdminHome.jsp log in as oc4jadmin/XXXXXXX
Configure new target
Target Type 11i
Description ERNIE
Name ERNIE
EBS Database Host Name auserniedb
EBS Database Port 1521
EBS Database SID ERNIE
username apps
password XXXXXXXXx
oc4jadmin XXXXXXXx
export JAVA_HOME=/usr/local/jdk1.5.0_22
export ORACLE_HOME=/d01/oracle/oc4j
export PATH=$ORACLE_HOME/bin:$PATH
cd $ORACLE_HOME/j2ee/home
java -jar admin_client.jar deployer:oc4j:aussearchdev oc4jadmin XXXXXXXXX -addDataSourceConnectionPool -name "ERNIE2-pool" -factoryClass "oracle.jdbc.pool.OracleDataSource" -dbUser "apps" -dbPassword "XXXXXXX" -url "jdbc:oracle:thin:@auserniedb.domainname.com:1521:ERNIE" -applicationName appsearch
java -jar admin_client.jar deployer:oc4j:aussearchdev oc4jadmin XXXXXXX -addManagedDataSource -name "ERNIEDS" -jndiLocation "jdbc/ERNIEDS" -connectionPoolName "ERNIE2-pool" -applicationName appsearch
http://aussearchdev.domainname.com:8888/modeler/faces/ModelerHome.jsp
So, creating a self signed SSL certificate for ERNIE EBS instance (this will not work if you use an SSL certificate for another server like say, PROD)
doing this on ausernieapp
openssl genrsa -des3 -out ausernieapp.key 1024
PEM key is ausernieapp
openssl req -new -key ausernieapp.key -out ausernieapp.csr
PEM key is ausernieapp
Country US
State Texas
Locality Austin
Organization Name Corporation
Organizational Unit Name Information Technology
Common Name ausernieapp.domainname.com
Email address [email protected]
No challenge password
No optional company name
Now let's remove the passphrase from the key
cp ausernieapp.key ausernieapp.key.orig
openssl rsa -in ausernieapp.key.orig -out ausernieapp.key
Now let's generate a self-signed certificate
openssl x509 -req -days 1000 -in ausernieapp.csr -signkey ausernieapp.key -out ausernieapp.crt
Install the private key and certificate
cd $IAS_ORACLE_HOME/Apache/Apache/conf/ssl.crt
cp server.crt server.crt.backup.03102010
chown applmgr:applmgr server.crt.backup.03102010
cp $HOME/ausernieapp.crt /d01/oracle/ernieora/new/iAS/Apache/Apache/conf/ssl.crt/server.crt
cd $IAS_ORACLE_HOME/Apache/Apache/conf/ssl.key/
cp server.key server.key.backup.03102010
cp $HOME/ausernieapp.key /d01/oracle/ernieora/new/iAS/Apache/Apache/conf/ssl.key/server.key
chown applmgr:applmgr server.key.backup.03102010
bounce apache as applmgr
cd /d01/oracle/erniecomn/admin/scripts/ERNIE_ausernieapp
./adapcctl.sh stop
./adapcctl.sh start
In IE
https://ausernieapp.domainname.com:8443
Continue
Click on Certificate Error next to URL bar
Install Certificate -> Next-> Place all certificates in the following store -> trusted root certificate authorities ->finish
close browser, back to https://ausernieapp.domainname.com:8443
no errors,
Next step will be to import key into the SES and Search modelers
as oracle on aussearchdev
cd /d01/oracle/10.1.8/sesdev/jdk/jre/lib/security/
cp cacerts cacerts.backup.03102010
scp root@ausernieapp:/root/ausernieapp.crt .
export LANG=c
export PATH=$ORACLE_HOME/jdk/bin:$PATH
keytool -keystore ./cacerts -storepass changeit -alias rootausernieapp -import -trustcacerts -file ausernieapp.crt
--output
Owner: [email protected], CN=ausernieapp.domainname.com, OU=Information Technology, O=Corporation, L=Austin, ST=Texas, C=US
Issuer: [email protected], CN=ausernieapp.domainname.com, OU=Information Technology, O=Corporation, L=Austin, ST=Texas, C=US
Serial number: b4e92089cf73076f
Valid from: Wed Mar 10 13:22:38 CST 2010 until: Tue Dec 04 13:22:38 CST 2012
Certificate fingerprints:
MD5: 2C:6B:EE:1A:63:6D:XX:A6:05:90:F6:XX:DD:88:F7:80
SHA1: F8:DC:E5:2A:3E:68:XX:E1:EA:E4:75:AE:CC:4F:4A:10:2F:8A:FE:9B
Trust this certificate? [no]: yes
Certificate was added to keystore
Now load our cert
keytool -keystore ./cacerts -import -trustcacerts -file ausernieapp.crt
keytool -list -v -keystore ./cacerts now shows
Alias name: rootausernieapp
Creation date: Mar 10, 2010
Entry type: trustedCertEntry
Owner: [email protected], CN=ausernieapp.domainname.com, OU=Information Technology, O=Corporation, L=Austin, ST=Texas, C=US
Issuer: [email protected], CN=ausernieapp.domainname.com, OU=Information Technology, O=Corporation, L=Austin, ST=Texas, C=US
Serial number: b4e92089cf73076f
Valid from: Wed Mar 10 13:22:38 CST 2010 until: Tue Dec 04 13:22:38 CST 2012
Certificate fingerprints:
MD5: 2C:6B:EE:1A:63:6D:CB:XX:05:90:F6:78:DD:88:F7:80
SHA1: F8:DC:E5:2A:3E:68:9C:CE:EA:4E:75:AE:CC:FA:9E:10:2F:8A:FE:9B
Now we need to load it into the search modeler keystore
as root on aussearchdev
export JAVA_HOME=/usr/local/jdk1.5.0_22/
export PATH=$JAVA_HOME/bin:$PATH
cd /usr/local/jdk1.5.0_22/jre/lib/security/
scp root@ausernieapp:/root/ausernieapp.crt .
output
keytool -keystore ./cacerts -import -trustcacerts -file ausernieapp.crt
Enter keystore password: changeit
Owner: [email protected], CN=ausernieapp.domainname.com, OU=Information Technology, O=Corporation, L=Austin, ST=Texas, C=US
Issuer: [email protected], CN=ausernieapp.domainname.com, OU=Information Technology, O=Corporation, L=Austin, ST=Texas, C=US
Serial number: b4e92089cf73076f
Valid from: Wed Mar 10 13:22:38 CST 2010 until: Tue Dec 04 13:22:38 CST 2012
Certificate fingerprints:
MD5: 2C:6B:EE:1A:63:6D:CB:A1:05:90:F6:78:DD:88:F7:80
SHA1: F8:DC:E5:2A:3E:68:9C:CE:EA:4E:75:AE:CC:4F:9E:10:2F:8A:FE:9B
Trust this certificate? [no]: yes
Certificate was added to keystore
[root@aussearchdev security]#
output
For troubleshooting, if you go to end of /d01/oracle/10.1.8/sesdev/search/data/config/crawler.dat
you can modify the logLevel from the default of 4 to 2 to get better debug data. No services need to be restarted, it will become active with the next crawl.
While talking with Oracle, they mentioned the following patches
The patches identified 8321527 and 7586924 are SES patches to help with indexing
They also identified patch 9103851 which is an apps patch dealing with responsibilities <-- This is not yet available
Applying patch 7586924
as oracle on aussearchdev
cd $ORACLE_HOME/bin
./searchctl stopall
cd /mnt/oraclebackup/deathstar_patches/SES/post_patches/7586924
opatch apply
cd $ORACLE_HOME/bin
./searchctl startall
sqlplus eqsys/XXXXXX@SESDEV
define SCH_NAME=EQSYS
define PROXY_USER=EQPROXY
define INST_USER=EQ_TEST
@$ORACLE_HOME/search/admin/eq0pkh.sql
@$ORACLE_HOME/search/admin/eq0plb.sql
@$ORACLE_HOME/search/admin/eq0bug_7586924.sql
cd $ORACLE_HOME/search/data/config/
cp crawler.dat crawler.dat.backup.03102010
vi crawler.dat
We're using the Oracle E-Business Suite R12 crawler, so we will add the line
USE_IN_MEMORY_QUEUE Oracle E-Business Suite R12
as the line immediately preceding IMPORT -
so the end of the file looks like this:
# system properies: separated by space for multiple system properties or define multiple SYSTEM_PROPERTIES
# logLevel values: DEBUG(2), INFO(4), WARN(6), ERROR(8), FATAL(10)
SYSTEM_PROPERTIES -Doracle.search.logLevel=4 -Doracle.search.log=oracle.search.util.Log4jImpl
USE_IN_MEMORY_QUEUE Oracle E-Business Suite R12
IMPORT -
Now on to patch 8321527
cd /mnt/oraclebackup/deathstar_patches/SES/post_patches/8321527
cd $ORACLE_HOME/bin
./searchctl stopall
cd -
opatch apply
cd $ORACLE_HOME/bin
./searchctl startall
sqlplus eqsys/XXXXXXX@SESDEV
define SCH_NAME=EQSYS
define PROXY_USER=EQPROXY
select object_name from user_objects where status = 'INVALID';
--should be no rows selected
@$ORACLE_HOME/search/admin/eq0pkh.sql
@$ORACLE_HOME/search/admin/eq0plb.sql
--should be no rows selected
restart SES
cd -
./searchctl stopall
./searchctl startall -
Creation of ASN and invoice in SUS
Hello All,
I have 2 queries with the functionality in SUS
1. ASN creation:
I have created a PO in MM for item A with 1000 quantity
In SUS i have created a confirmation for complete 1000 items
I have also created an ASN for all the 1000 items
I have also created an invoice for all 1000 items.
My question is:
1. Should the vendor in SUS be allowed to create an ASN even after this whole process for a quantity greater than order quantity?
My opinion is :
No. Reasons are
1. If the supplier requires the same item A again he would create a new PO
2. If he wants to use the same PO he would alter the order quantity in the PO and hence the SUS vendor will now be able to create a confirmation and ASN for this anyway.
3. Without PO change, the SUS vendor must not be allowed to create an ASN unecessarily.
Please let me know if I am right.
2. Invoice creation:
After creating an ASN for the complete quantity and after accepting the GR in SUS, we should be able to create an invoice.
my question is:
This creation of invoice should be possible from the PO also right? i.e, there should be a create invoice button available in the PO.
Please let me know if I am right.
Because currently I am not getting this button.
Best regards,
VidhyaHello Yeu Sheng Teo,
Thanks for the reply.
I think I need to clarify my second query.
I agree that ASN is required for SUS-MM scenario. My question is that, after creation of ASN for the complte number of items, I am unable to create an invoice from the PO. the PO still has the create ASN button and not the create invoice button.
Is this correct or wrong?
Should I be able to create an invoice from the PO or not?
Best regards,
Vidhya
Maybe you are looking for
-
Word wrapping in row header cell in OLAPDataGrid
I have an issue with the OLAPDatagrid. Does anyone know how to wrap text in the row header cells? (to avoid confusion, i will demonstrate my issue using a grid with 1 row and 1 column dimension). OLAPDataGrid has 2 properties: wordWrap, which only se
-
Error building the BPM application
Hello, My BPM application was running fine. When I add one more Webdynpro component as dependent project and use Its UI on certain step. Since then my BPM application has an error in building the project which is "Build fail for <project name> in var
-
Want to change my MacBook Pro login wallpaper.
How can I change the log in wallpaper?
-
Office no longer gets templates
I am building an image for 8.1 with office 2013 and I rearmed office using opprearm.exe because i use KMS. Now that i rearmed office word no long gets its online templates. Usually what happens when i start work up for the first time, or any office
-
Inaccurate colors in organizer thumbnails
System is Win7 PSE 8; RAW I've been using this system for several months without problems. Yesterday I took some flower pictures, but when I imported them into the organizer the color was way off - very red. They were correct in camera and in the P