Ir al contenido principal

Snippets Mongo DB

 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.

Crear Pool Conexión en Tomcat para Oracle , Mysql

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



Comentarios

  1. 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 :)

    ResponderBorrar
  2. gracias por tu aporte

    ResponderBorrar

Publicar un comentario

Entradas más populares de este blog

Resetear usuario y contraseña Weblogic

Esta ocasión se me presento un pequeño problema con el acceso a mi weblogic local, podía levantar mi weblogic pero para entrar a la consola no tenia el usuario ni password (Autenticación Denegada Weblogic).Por lo que busque en la red para poder resetear el usuario y password de weblogic.

No se puede llamar Invoke o a BeginInvoke

Que tal banderola pues aca escribiendo sobre un error que me dio al instalar el administrador Microsoft SQL 2008 , pues bien resulta que necesitaba instalar esta tool, y cuando trataba de iniciar el wizard me lanzaba un error que decia algo asi " No se puede llama a Invoke o a BeginInvoke en un control hasta que se halla creado el indentificador de ventana" si no me creen vean la imagen : y entonces me dije a mi mismo, "mi mismo como le voy hacer" entonces pues tube que recurrir a mi salvacion como siemore :D San Google.com, y ya con unas cuantas palabras clave pues que me lanza algunos resultados de los cuales me habia encontrado algo como esto: Problemas al instalar SQL Server 2008 ? Para lo cual no hice caso a este tip pues resulta que yo no tenia instaldo el windows xp, mas bien tenia instalado el windows 7 por que leyendo en los comentarios que se habian hecho llegue a un muy buen tip que decia algo asi: "Para aquellos compañeros que quieren instalar el S