I want to share my experience about one of my projects and say thank you to the community.
Scenario : My company's ERP system is SAP and rent a procurement system for bid. It's architecture bases on Webshpere5 and Oracle and IBM Java 1.4. The provider informed us that they decide to close this bid platform on 2016/03/31 about 3 month ago.
The good news is that they can give us the complete source code. But we don't have Webshpere and another Oracle License for this system. Fortunately, I found that there is a PostgreSQL wiki site providing useful information about tools and migration tips. After doing some analysis, I decide to use Jetty 9 and PostgreSQL 9.1 and Oracle Java 1.7 to replace them. Transferring data is another problem. I decide to use Pentaho Data Integration tool. It is an ETL tool. I can learn about the status of transferring until the job was done. It helps me to keep the consistency of data in Oracle and PostgreSQL.
After modifying many SQL commands to be suitable for PostgreSQL and setting web.xml for Jetty, our procurement system can be active successfully without Webshpere and Oracle. However, its performance is poorly. I found that there are two problems to result in this situation. One is that JVM will crash accidentally. The other is that sometimes JDBC could not connect to PostgreSQL.
Fortunately, Jetty is flexible and Java's garbage collection log provides useful information. I can tune JVM with different parameters while initiating Jetty. The last problem is JDBC. It use DBCP 1.3 as default to connect database. According to our new architecture, I replace DBCP with PGConnectionPoolDataSource.
Now our system is running smoothly with this kind of architecture. I also use some PERL scripts to transfer data and JCO RFC to perform SAP's transaction.