Connection pool in JBoss 7.1/Wildfly 8.2

When deploying production applications, the best way to handle database connections is through a connection pool. Actually, most of JEE containers can manage connection pools, thus, you only request a connection from your application to the server and server is in charge of manage active connections and serve connections when needed. JBoss lets you configure a datasource and then configure a connection pool. The steps are the next:

  1. Register JDBC library as a module
  2. Create a new database driver based on JDBC module
  3. Create a datasource

1. Register JDBC library as a module

I’m using PostgreSQL 9.3 so i have postgresql-9.3-1102-jdbc41.jar . Navigate to JBoss directory. Inside you will find a folder named modules. Here, you will see various modules already present in JBoss or Widlfly. In Wildfly is a little bit different because inside modules folder, you only will find a folder named system. The idea is to separate system modules from your modules. You will have to create your own folders inside it.

Continue reading

Installing Oracle VirtualBox and configuring a virtual machine

This video is the first of a complete videotutorial course about PostgreSQL – usage and management – that is under construction but it will be released in a couple of weeks. The course is focused on teach you how to install PostgreSQL on Windows or Linux, configuring it and tuning it, learn the basics of DML and DDL, learn programming language PL/pgSQL, triggers, backup and restore, using command line tools like psql and so on. This first video isn’t about PostgreSQL, it’s about installing and configuring VirtualBox. The idea is to install PostgreSQL on a virtual machine to simulate a remote database server, or to teach you how to install it on Linux if your computer OS is Linux.

Set Conversation timeout on CDI Beans

Conversation scope is a nice feature when you want to save values over request on different pages as long as you still interact with the same bean. Basically is a session scope where you have to start the conversation explicitly with a default timeout (unless you finish the conversation manually).

Default CDI Conversation scope timeout is 30 minutes. This means that, if you stop interacting with the GUI and there’s no requests to server side components, server saves conversation data during 30 minutes until it destroys it. That’s a lot of time.

You can define conversation timeout by using setTimeout() method of Conversation object by defining time in milliseconds. In the next example the timeout is set to 20 seconds. You can test timeout by pressing the button a couple of times to increase counter, then wait 20 seconds without doing anything and then pressing again a couple of times.

Continue reading