Esta publicación servirá para ir colocando fragmentos de consultas que en algún momento me fueron útiles para usarlo en MongoDB Fragmento 1: Se requería obtener todos los elementos que dentro de un atributo que es de tipo array(arreglo) coincida con type:"fire" Fragmento 2: Se requería actualizar el atributo " lastUpdate " de toda la colección donde la edad sea mayor o igual a 15.
Pues bien
esta vez esta vez voy a mostrar cómo realizar la configuración
para generar pool de conexión para Oracle y otro para MySql en
tomcat, pues bien menos escribir y mas imágenes que muestren como se
hace esto:
Para mi caso
tengo en eclipse Tomcat 7.0.42 previamente colocado en el apartado de
servidores como el la imagen siguiente:
Como ya se
sabe cuando se coloca un nuevo servidor, eclipse genera una serie de
carpetas que contienen la configuración de dicho servidor tal como
se ve en la imagen siguiente:
Voy a
configurar los pool’s de conexión en el archivo context.xml
agregando la siguientes líneas:
<!--
Pool de conexion para Oracle -->
<Resource
name="jdbc/myoracle"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@15.128.1.69:1526:BNT03D"
username="monitoreo"
password="#monitor1"
maxActive="20"
maxIdle="10"
maxWait="-1"/>
<!--
Pool de conexion para Mysql -->
<Resource
name="jdbc/mysql"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="root"
password=""
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1/MyDataBase"/>
Una
vez que agrego estas líneas debo tener en mi carpeta lib de tomcat
los .jar siguientes:
ojdbc14.jar--
este es para Oracle
jdbc-mysql--
este es para Mysql
Y
listo tenemos preparados los pool’s para crear las conexiones.
Vamos
hacer el proyecto web para ver el funcionamiento:
Generamos un
proyecto web nuevo llamado PoolConexiones
Generamos el
paquete com.elkardumen.servlet.
Dentro del
paquete generamos el servlet TestConexiones.java
Colocamos el
código siguiente:
package
com.elkardumen.servlet;
import
java.io.IOException;
import
java.sql.Connection;
import
javax.naming.Context;
import
javax.naming.InitialContext;
import
javax.servlet.ServletException;
import
javax.servlet.annotation.WebServlet;
import
javax.servlet.http.HttpServlet;
import
javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse;
import
javax.sql.DataSource;
/**
*
Servlet
implementation class TestConexiones
*/
@WebServlet(description
= "Tester
de Conexiones Pools",
urlPatterns = { "/TestConexiones"
})
public
class
TestConexiones extends
HttpServlet {
private
static
final
long
serialVersionUID
= 1L;
/**
*
@see
HttpServlet#HttpServlet()
*/
public
TestConexiones() {
super();
//
TODO
Auto-generated constructor stub
}
/**
* @see
HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
response)
*/
protected
void
doGet(HttpServletRequest request, HttpServletResponse response)
throws
ServletException, IOException {
try{
Context
initContext = new
InitialContext();
Context
envContext = (Context)initContext.lookup("java:/comp/env");
DataSource
ds = (DataSource)envContext.lookup("jdbc/myoracle");
Connection
conn = ds.getConnection();
System.out.println("Oracle>>>"+conn+""+conn.isClosed());
Context
initContextMySql = new
InitialContext();
Context
envContextMySql =
(Context)initContextMySql.lookup("java:/comp/env");
DataSource
dsMySql = (DataSource)envContextMySql.lookup("jdbc/mysql");
Connection
connMySql = dsMySql.getConnection();
System.out.println("MySql>>>"+connMySql+""+connMySql.isClosed());
}catch(Exception
e){
e.printStackTrace();
}
//
TODO
Auto-generated method stub
}
/**
* @see
HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
response)
*/
protected
void
doPost(HttpServletRequest request, HttpServletResponse response)
throws
ServletException, IOException {
//
TODO
Auto-generated method stub
}
}
Ahora es
importante que se tenga la referencia de los pools que se van a
utilizar,en el archivo web.xml es necesario colocar el siguiente
configuración.
<?xml
version="1.0"
encoding="UTF-8"?>
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID"
version="3.0">
<display-name>PoolConexiones</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<resource-ref>
<description>Oracle
Datasource example</description>
<res-ref-name>jdbc/myoracle</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<resource-ref>
<description>DB
Connection</description>
<res-ref-name>jdbc/TestDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<servlet>
<description></description>
<display-name>Conexion</display-name>
<servlet-name>Conexion</servlet-name>
<servlet-class>com.elkardumen.servlet.TestConexiones</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Conexion</servlet-name>
<url-pattern>/Conexion</url-pattern>
</servlet-mapping>
</web-app>
Una vez que se coloco entonces solo
queda deployar el proyecto como de costumbre, click derecho->Run
As ->Run on Server
Ya que deployo en nuestro navegador
colocamos la ruta
ojo con el puerto , 8042 es el que yo
configure , si ustedes no han configurado el puerto lo mas probable
es que sea 8080.
Si todo sale bien entonces se mostrara
en la consola algo como lo que sigue:
Listo coloco el proyecto web asi como
los libs que utilice para que sean utilizados en cualquier momento
Saludos
Y que ni un solo comentario.... por lo menos uno para decirme que estoy mal o bien, o que funciono o no... No estaría nada mal que por lo menos un Saludo :)
ResponderBorrargracias por tu aporte
ResponderBorrar