Skip to main content

Forms Socket/Servlet

Following are the queries answered by me in one of the forums.

1. Will it be possible that the forms tier load also will be balanced by Hardware load balancer ? Before we know the answer for this question, i guess its better to know the forms architecture. Forms in Oracle Applications can be configured in 2 modes.

a. Socket Mode and
b. Servlet Mode.

a. Socket Mode: By default forms 6i comes with Socket Mode install. If customer hasn't done any changes then he would still be using Socket Mode. In socket mode then forms cannot be loadbalanced using hardware load balancer. In this case you need to use Forms Metric Server Load Balancing.

For configuration details refer to document: 217368.1 Section 2.4. Forms Server / Metrics Layer Load Balancing.
Forms socket mode connections are always faster compared to servlet mode(if hardware resources are infinite then this should be of little concern). This is the only reason why customers use forms socket mode else Servlet mode is better.

b. Servlet Mode: It is easy to configure forms servlet by changing few parameters in the context file and running autoconfig. This architecture converts all forms requests to be handled as http requests. So once Hardware Loadbalancer is configured with Oracle Applications then there is no special configuration required to handle forms tier load.

For configuration details refer 201340.1 Using Forms Listener Servlet with Oracle Applications 11i

Following are the advantages:
* Support for a broader range of firewalls and proxies
* No protocol restriction (HTTP/1.1 or HTTP1.0)
* No extra process to manage (No Forms listener process)
* No specific certificate to purchase/manage for SSL deployment (Done at the web server level)
* Standard Load balancing techniques support
* Internet Explorer 5.0 native support in intranet and internet deployment2.

In case of failure of DB node the standby should be activated using the IP of production server or app tier will require some change?It depends on how DB failover is achieved.

a. If you are assigning the IP address of failed Production server to a new server and also the hostname then there is no change required on apps tier. (Recommended)
b. If you are assigning only the IP not the hostname then you must change the hostname of the db server in the context file and run autoconfig on all the apps tiers.

Hope this helps.



Popular posts from this blog

SQL Interview Questions on Subqueries

SUB Queries:
1. List the employees working in research department 2. List employees who are located in New York and Chicago
3. Display the department name in which ANALYSTS are working
4. Display employees who are reporting to JONES
5. Display all the employees who are reporting to Jones Manager
6. Display all the managers in SALES and ACCOUNTING department
7. Display all the employee names in Research and Sales Department who are having at least 1 person reporting to them
8. Display all employees who do not have any reportees
9. List employees who are having at least 2 reporting
10. List the department names which are having more than 5 employees
11. List department name having at-least 3 salesman
12. List employees from research and accounting having at-least 2 reporting
13. Display second max salary
14. Display 4th max salary
15. Display 5th max salary  -- Answer for nth Max Salary
Co-Related Subqueries:
16. Write a query to get 4th max salary from EMP table
17. Write a query to get 2nd…

'Linux-x86_64 Error: 28: No space left on device' While trying to start the database -- Error

SQL> startup mount pfile='/tmp/initdlfasp12.ora'
ORA-27102: out of memory
Linux-x86_64 Error: 28: No space left on device

This as you can see is on Linux x86 with 64 bit processor. We got this error after we changed SGA on 10gR2 database. So was sure that this is something to do with the OS.

Parameters to check for this are shmall.

shmall is the total amount of shared memory, in pages, that the system can use at one time.

$cat /proc/sys/kernel/shmmax

$ getconf PAGE_SIZE

As per Oracle SHMALL should be set to the total amount of physical RAM divided by page size.

Our system has 64GB memory, so change kernel.shmall = 1024 * 1024 * 1024 * 64 / 4096 = 16777216

Once this value is calculated you can modify Linux system configuration file directly.

$ su - root
vi /etc/sysctl.conf file:


# sysctl -p

Once this is done the database was started without any problem.

Answers for SQL Functions

1. SQL> SELECT empno, ename FROM emp WHERE Length(ename) = 4;

2. SQL> SELECT empno, ename, job FROM emp where Length(job)=7;

3. SQL> SELECT Length('qspiders') - Length(replace('qspiders','s','')) FROM dual;

4. SQL>  SELECT empno, ename, job FROM emp WHERE Instr(job,'MAN') >0;

5. SQL> SELECT empno, ename, job FROM emp WHERE Instr(job, 'MAN') =1;

6. SQL> SELECT empno, ename, job FROM emp WHERE (Length(ename) - Length(Replace(ename, 'L',''))) = 1;

7. SQL> SELECT * FROM dept WHERE Instr(dname,'O') > 0;

8. SQL> SELECT Concat(ename,' working as a ') || Concat(job, ' earns ') || Concat(sal, '  in ') || Conc
at('dept ',deptno) AS text from emp;


SQL> SELECT Concat(Concat(Concat(Concat(Concat(Concat(Concat(ename,' working as a '), job),' earns '), sal),'  in '),'dept '), deptno) AS text FROM emp;

9. SQL> SELECT empno, ename…