Wednesday, January 11, 2012
Successfully configured Oracle Report Server 11.1.1.2 to generate Arabic PDF reports
Today I Successfully configured Oracle Report Server 11.1.1.2 to generate Arabic PDF reports. really it was headache, and turns out to be a bug at the end.
Friday, December 30, 2011
Reference attributes in other view objects using groovy
This post is based on a question I asked to Mr.Andrejus Baranovskis's on his public Wiki. How to reference attributes in different view objects through groovy.
And he answered me that its doable after exposing the ViewLink Accessor between the two view objects and then accessing the attribute through ViewlinkAccessor.AttributeName
He posted the last post for this year on his blog with an example, just follow the link:
http://andrejusb.blogspot.com/2011/12/groovy-with-view-link-accessor.html
And he answered me that its doable after exposing the ViewLink Accessor between the two view objects and then accessing the attribute through ViewlinkAccessor.AttributeName
He posted the last post for this year on his blog with an example, just follow the link:
http://andrejusb.blogspot.com/2011/12/groovy-with-view-link-accessor.html
Friday, December 16, 2011
Add Custom validator - nicely attached to InputText Field
After building your business components, and adding your view object through data controls to the jspx or jsff page as editiable field you need to do the following:
- Add a new Java bean to your application resources in my case I named it TestValidation.
- Select the InputText field, and in property inspector go to Behavior property, then inside Validator area select edit to add new custom validator.

- Then it will build a method inside your bean with list of params will be used during validation phase.

- Write the business logic you need to check the value of the input filed, the object param contains the new entered value.
- Then throw the validationException with custom message to your current FacesContext.
- At runtime you will get a nicely error message attached to the InputText field.
- Add a new Java bean to your application resources in my case I named it TestValidation.
- Select the InputText field, and in property inspector go to Behavior property, then inside Validator area select edit to add new custom validator.
- Then it will build a method inside your bean with list of params will be used during validation phase.
- Write the business logic you need to check the value of the input filed, the object param contains the new entered value.
- Then throw the validationException with custom message to your current FacesContext.
- At runtime you will get a nicely error message attached to the InputText field.
Monday, December 12, 2011
I did technical review on this book - Oracle ADF Enterprise Application Development—Made Simple
- Develop an ADF application quickly using database tables together with common ADF user interface components and data visualization components.
- Estimate the effort required to build an ADF enterprise application.
- Organize the development team, choose support tools, and write development guidelines to ensure a uniform development approach.
- Set up the necessary infrastructure and configure a development workstation.
- Develop necessary templates and framework classes to allow productive and flexible development.
- Build a complete application using all the enterprise support tools.
- Test your ADF enterprise application at the component, integration, and system levels.
- Use skinning to change the look of the application to correspond to the enterprise's visual identity.
- Customize the application to meet the needs and expectations of different users.
- Secure the enterprise application and assign roles for specific functionality.
Sunday, December 4, 2011
Redeveloping an Oracle Forms Application with Oracle ADF
A very nice presentation by Oracle about Oracle Forms migration to Oracle ADF. The main idea there is no magic bullet you have to do some work but Oracle try making it easy to migrate.
See the below like for more details, you can go directly to minute 14 to skip the intro:
Oracle Forms to ADF migration
See the below like for more details, you can go directly to minute 14 to skip the intro:
Oracle Forms to ADF migration
Sunday, September 18, 2011
oracle.jbo.NotConnectedException: JBO-25200 While using View Criteria
This error "which i think its a bug in JDeveloper 11g Release 2", appeared while building view criteria with bind variable inside the SQL query using read-only view.
While developing a view object based on SQL query I add a where condition in which it select a specific employee information as an example " (where empno=:empno) " from details table in which it will return multiple records, then I wanted to build a view criteria on this view object to filter the result based on another attribute.
So while the page begins loading, it throws the following exception:
oracle.jbo.NotConnectedException: JBO-25200:.
at oracle.jbo.server.DBTransactionImpl.checkConnected(DBTransactionImpl.java:6810)
at oracle.jbo.server.DBTransactionImpl2.createPreparedStatement(DBTransactionImpl2.java:398)
And the application stops working since the connection to the database is lost.
The error message is not clear to what is happening inside the application flow, and it does not provide enough information about the actual error. But eventually and after building the project from scratch, I discovered that the bind variable used inside the SQL query as discussed before, should be set to HIDE value under control hints.
Finally got it to work... :)
While developing a view object based on SQL query I add a where condition in which it select a specific employee information as an example " (where empno=:empno) " from details table in which it will return multiple records, then I wanted to build a view criteria on this view object to filter the result based on another attribute.
So while the page begins loading, it throws the following exception:
oracle.jbo.NotConnectedException: JBO-25200:.
at oracle.jbo.server.DBTransactionImpl.checkConnected(DBTransactionImpl.java:6810)
at oracle.jbo.server.DBTransactionImpl2.createPreparedStatement(DBTransactionImpl2.java:398)
And the application stops working since the connection to the database is lost.
The error message is not clear to what is happening inside the application flow, and it does not provide enough information about the actual error. But eventually and after building the project from scratch, I discovered that the bind variable used inside the SQL query as discussed before, should be set to HIDE value under control hints.
Finally got it to work... :)
Wednesday, December 29, 2010
Oracle CSService Hangs on Single Node with ASM, on Remote Machine
It was a while since I posted anything, don't know why...!
Any way, I faced a problem during the last two days, the network admin decided to move to new domain and one of the technicians decided to move the database at one of the remote location we have to the new domain, every thing was working fine until one of the databases on that machine crashed.
So, when I tried to login as /sysdba it kept saying insufficient privileges, but when logging using sys account with password it worked fine. I tried to startup the database but it couldn't connect with ASM due to insufficient privilege again. I was logging as domain admin to the machine, and tried the same thing using local admin with the same problem, even though, I tried to change the authentication method in the SQLNET.ORA file from NTS to NONE, but I kept receiving the same error.
I even added the the local administrator to dba_ group under windows group, but with no success. When I decided to restart the machine, the remote desktop didn't connect and the machine seemed to be hanged.
I tried to connect to the management console, it connects which mean the server is working, so , I doubted that there is an oracle service causing these problems. At first, I needed to connect to the machine using Remote Desktop, so I connected through, register editor to the remote machine, then I disabled all oracle services (in REGEDIT), and issued a restart command on the machine using shutdown line command (shutdown -r -m \\xxx.xxx.xxx.xxx).
I was connected using RDP, then I tried to start oracle services one at time, but the OracleCSService couldn't be started. So, after checking the log file of the cssd service, I noticed that crsctl.exe check boot keeps return an error and it stuck in infinite loop, I build the OCR file used by this service using
then I changed the logon owner of all oracle service to local system on services properties, and it worked the CSSD is up and running, it seemed that the local OCR file used by cssd is corrupted due to service failure, which prevented oraclecsservice from starting and as a consequence it blocked the RDP connection.
And, When changed the logon owner of all oracler service, the insufficient privilege disappeared also and the database is up and running.
Then I've changed the listener.ora file and tnsnames.ora file with server address than server name and restarted the listener.
Any way, I faced a problem during the last two days, the network admin decided to move to new domain and one of the technicians decided to move the database at one of the remote location we have to the new domain, every thing was working fine until one of the databases on that machine crashed.
So, when I tried to login as /sysdba it kept saying insufficient privileges, but when logging using sys account with password it worked fine. I tried to startup the database but it couldn't connect with ASM due to insufficient privilege again. I was logging as domain admin to the machine, and tried the same thing using local admin with the same problem, even though, I tried to change the authentication method in the SQLNET.ORA file from NTS to NONE, but I kept receiving the same error.
I even added the the local administrator to dba_ group under windows group, but with no success. When I decided to restart the machine, the remote desktop didn't connect and the machine seemed to be hanged.
I tried to connect to the management console, it connects which mean the server is working, so , I doubted that there is an oracle service causing these problems. At first, I needed to connect to the machine using Remote Desktop, so I connected through, register editor to the remote machine, then I disabled all oracle services (in REGEDIT), and issued a restart command on the machine using shutdown line command (shutdown -r -m \\xxx.xxx.xxx.xxx).
I was connected using RDP, then I tried to start oracle services one at time, but the OracleCSService couldn't be started. So, after checking the log file of the cssd service, I noticed that crsctl.exe check boot keeps return an error and it stuck in infinite loop, I build the OCR file used by this service using
ORACLE_HOME of 10g\bin\clscfg.exe -local -o ORACLE_HOME of 10g-l AMERICAN_AMERICA.WE8ISO8859P1then I changed the logon owner of all oracle service to local system on services properties, and it worked the CSSD is up and running, it seemed that the local OCR file used by cssd is corrupted due to service failure, which prevented oraclecsservice from starting and as a consequence it blocked the RDP connection.
And, When changed the logon owner of all oracler service, the insufficient privilege disappeared also and the database is up and running.
Then I've changed the listener.ora file and tnsnames.ora file with server address than server name and restarted the listener.
Tuesday, June 15, 2010
Executing a Callable Statement using DBTransaction
Rather than creating a new Application Module and then bind it to new DBTransaction, to execute a query or return the result of a procedure "which would create a new connection to database".
You can use the following code snippet to create a callable statement to execute a database procedure and get results out in resultSet:
ApplicationModuleImpl amimpl=
You can use the following code snippet to create a callable statement to execute a database procedure and get results out in resultSet:
BindingContext bindingContext =
BindingContext.getCurrent();
ApplicationModuleImpl amimpl=
(ApplicationModuleImpl)(ApplicationModule)
bindingContext.getDefaultDataControl()
.getDataProvider();
DBTransaction trans=amimpl.getDBTransaction();
CallableStatement cs = trans.createCallableStatement("{call ? :=
CallableStatement cs = trans.createCallableStatement("{call ? :=
NAME_OF_PROCEDURE(?,?) }",trans.DEFAULT);
cs.registerOutParameter(1, Types.VARCHAR);
cs.setString(2, searchstring);
cs.setString(3, "");
cs.execute();
return cs.getString(1);
Wednesday, May 19, 2010
Possible scenarios when receiving optisk error in Oracle Database, or when sessions disconnect abnormally
A problem occurs at database level after requesting huge data from database. Database sessions disconnect abnormally while there is still packets being received. I was able to detect the problem using network monitoring tools.
One possible issue is related to the timing required to process data on one side and the expire time for inactive socket connection. The firewall could interpret the time spent by one side as inactive connection and after a while to drop the connection. Situation like this could be avoided by using the sqlnet.expire_time <> 0 on server side. By using this parameter there is no forced disconnection, a pulse sent to client understood by firewall as traffic but not visible to the client application.
Another issue that is when running via a firewall related to data contents / type of data or queries. FIXUP or FIXIT or DEEP PACKET INSPECTIONS have caused issues on sqlnet communication. I short those features change the data packet but if does not change the header details, due to this when sqlnet reads the header and the data doesn't match, it will report a packet corruption. This is possible when the firewall have these features turned on.
Using Intrusion Protection System (IPS) also could cause the same problem since IPS will lookup data packets try to modify it, or in some cause will delay packet transferee due to data fragmentation.
Thing would help further is tracing client - server connection and checking the listener.log and altert.log file if any errors reported.
One possible issue is related to the timing required to process data on one side and the expire time for inactive socket connection. The firewall could interpret the time spent by one side as inactive connection and after a while to drop the connection. Situation like this could be avoided by using the sqlnet.expire_time <> 0 on server side. By using this parameter there is no forced disconnection, a pulse sent to client understood by firewall as traffic but not visible to the client application.
Another issue that is when running via a firewall related to data contents / type of data or queries. FIXUP or FIXIT or DEEP PACKET INSPECTIONS have caused issues on sqlnet communication. I short those features change the data packet but if does not change the header details, due to this when sqlnet reads the header and the data doesn't match, it will report a packet corruption. This is possible when the firewall have these features turned on.
Using Intrusion Protection System (IPS) also could cause the same problem since IPS will lookup data packets try to modify it, or in some cause will delay packet transferee due to data fragmentation.
For more details reference:
Note 805088.1 ORA-3135 with Recovery Catalog Creation Across the Network.
Note 815165.1 ORA-12569 While Trying To Query SYS.DBA_AUDIT_TRAIL Via Oracle Net.
Thing would help further is tracing client - server connection and checking the listener.log and altert.log file if any errors reported.
Subscribe to:
Posts (Atom)
