Como crear un DataSource en WebLogic

Data SourceEn este art铆culo聽les explico los pasos que se tiene que llevar a cabo para registrar un nuevo Data Source en WebLogic. Los Data Source o fuentes de datos nos permitir谩n administrar el acceso a los datos de una forma mas segura, ya que en vez que cada aplicaci贸n mantenga las credenciales a las base de datos, estas estar谩n resguardas por el Data Source. Los data source tambi茅n permiten mantener un conjunto de conexiones abiertas para estar disponibles al instante de ser requeridas.

  1. Lo primero que tendremos que hacer es entrar a la consola de WebLogic la cual generalmente la URL es http:// <host> : <puerto> /console y en caso de estar instalada en el localhost la url por default es http://localhost:7001/console.
  2. Una vez en la consola ubicamos la opci贸n de Data Source que se encuentra las opciones del lado izquierdo.DataSource
  3. En Data Source aparece una tabla con los Data Source registrados en WebLogic y la opci贸n de crear uno nuevo, para lo cual presionamos en New聽y presionamos en la opci贸n Generic Data Source.聽DataSourceEn caso de que la opci贸n no aparezca habilitada es por que tenemos configurado el WebLogic en modo productivo y para poder crear un Data Source es necesario crear una Actividad desde la parte superior izquierda.
  4. En la siguiente pantalla determinamos el nombre del DataSource el Nombre de JNDI y el tipo de base de datos que vamos a utilizar. presionamos Next para continuar.DataSourceName聽representa el identificador dentro de WebLogic, JNDI Name聽representa el nombre con el cual aremos referencia desde nuestra aplicaci贸n para poderlo inyectar por medio de CDI, Database Type聽es el tipo de base de datos o proveedor a utilizar.
  5. En la siguiente pantalla tendremos que elegir el driver que queremos utilizar para realizar la conexi贸n a la base de datos. En este caso seleccionamos el driver de Oracle con soporte para XA o Transacciones Distribuidas. en caso de no ser requerido una conexi贸n XA solo seleccionamos la driver que no dice XA y listo.DataSource
  6. En la siguiente pantalla solo presionamos NextDataSource
  7. Es tiempo de configurar el acceso a la base de datos pues en esta pantalla tendremos que poner el nombre de la base de datos,host,puerto,suario/password y presionamos Next para continuar.DataSource
  8. La siguiente pantalla nos confirma la clase a utilizar para la conexi贸n y el String de conexi贸n, a qui solo nos queda presionar en Test Configuration para asegurarnos de que los datos de conexi贸n son correctos. continuamos con Next.DataSource
  9. En este punto los datos de conexi贸n son correctos y solo falta desplegar el DataSource por lo que Weblogc nos pide seleccionar las instancias o servidores en los cuales nuestro DataSource estar谩 presente, En mi caso solo tengo un servidor por lo que solo selecciono AdminServer. Finalmente presionamos Finish y nuestro DataSource estar谩 listo para utilizarse.DataSource
  10. WebLogic nos regresa a la lista de DataSource donde podremos ver nuestro data source.聽Nota:Si estas con una configuraci贸n de modo productivo tendr谩s que dar commit a la actividad que creaste hace un momento en la parte superior izquierda de la pantalla.

 

Con esto finalizo y espero que les sea de utilidad.

Art铆culos relacionados

Ordenar Listas en Java Si eres programador seguramente te has encontrado con el problema de Ordenar Listas, pero 驴Estamos utilizando la soluci贸n correcta o estamos reinventa...
Java 鈥 Weakreference Este tema hasta para los expertos en java les puede resultar desconocido y es que siempre creemos que un objeto que no esta referenciado por ninguna v...
Java 9 鈥 an谩lisis de las novedades Java 9 trae importantes novedades, pero todo sobre sale el sistema de m贸dulos, para conocer todo acerca de java 9, te invito a veas mi articulo "J...

Oscar Blancarte

Ideol贸gico, Innovador y emprendedor, Padre, Tecn贸logo y Autor, amante de la ciencia y la tecnolog铆a en todos sus colores y sabores. Arquitecto de software & Full Stack Developer con experiencia en la industria del desarrollo de software y la consultor铆a. Amante de la programaci贸n y el Ajedrez.

40 comentarios en “Como crear un DataSource en WebLogic

  1. Hi, greetings from colombia. You could help me with an answer about how to get a data source from java class. I am trying and trying and trying and nothing. My jndi name: jdbc_jndi, data source name: jdbc_data_Source. The error: “javax.naming.NoInitialContextException: Need to specify class name in environment or system property,..”, my code is:

    package java_conexion;

    import java.sql.*;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    public class J03_conexion_03 {
    public static void main(String[] args) {
    Connection connection=null;
    try {
    Context ctx=new InitialContext();
    javax.sql.DataSource ds=(javax.sql.DataSource)ctx.lookup(“jdbc_data_Source”);
    Connection con=ds.getConnection();

    Statement stat = connection.createStatement();

    String sentencia_sql_consultar_general = “SELECT * FROM USUARIOS”;
    ResultSet rs2 = stat.executeQuery(sentencia_sql_consultar_general);
    while (rs2.next()) {
    System.out.println( rs2.getString(“nom”) );
    }
    stat.close();
    connection.close();
    }
    catch(Exception e)
    {
    System.out.println(e);
    }
    }
    }锘

    1. Hola Carlos.
      El problema es muy simple, cuando tu inicializas la clase Context ctx=new InitialContext(); desde un m茅todo main o desde una contexto fuera del servidor, el InitialContext no se inicializa correctamente, para tu poder obtener recursos por medio de JNDI desde fuera del servidor tienes que indicarle al InititalContext los par谩metros de conexi贸n con el servidor, para saber que par谩metros enviarle te invito a que accedas a la siguiente URL http://docs.oracle.com/javase/jndi/tutorial/basics/prepare/initial.html
      Por otra parte, si tu intentas acceder a los recursos por medio del InitialContext desde dentro del servidor como por ejemplo en un Servlet, EJB, Webservices, etc. veras que el InitialContext como lo tienes definido funcionara perfectamente.

      Saludos.

      1. Muchas gracias Oscar por la pronta respuesta que efectivamente me hace tener en cuenta desde donde quiero acceder al data source si dentro o fuera del server, claro, tiene raz贸n. Voy a revisar bien. El link recomendado no funciona. saludos y gracias.

        1. Como comentario adicional, una buena pr谩ctica es que los data source inicialicen con jdbc/ por dos razones: la primera es muho m谩s descriptivo el nombre, ya que nos dice r谩pidamente que se trata de un DataSource y la segunda es que hay menos posibilidades que colicione con alg煤n otro JNDI de otro tipo de recurso, recurda que el JNDI es un identificador 煤nico de recursos en todo el servidor.

          1. Buenos d铆as Oscar. Quer铆a molestarlo y hacerle una consulta. Como puedo sacar una copia de las aplicaciones de ejemplo que he hecho en jdev11. No encuentro las carpetas. Recuerdo que en jdev10 era solo ir a jdevstudio10134-B4270jdevmywork. Voy a reinstalarlo. Por ahora me rindo con lo del Data Source. Ayer inici茅 mis vacaciones del trabajo y tendr茅 unas cuantas semanas para seguir revisando todo esto. saludos, gracias.

  2. Buenos d铆as Oscar. Quer铆a molestarlo y hacerle una consulta. Como puedo sacar una copia de las aplicaciones de ejemplo que he hecho en jdev11. No encuentro las carpetas. Recuerdo que en jdev10 era solo ir a jdevstudio10134-B4270jdevmywork. Voy a reinstalarlo. Por ahora me rindo con lo del Data Source. Ayer inici茅 mis vacaciones del trabajo y tendr茅 unas cuantas semanas para seguir revisando todo esto. saludos, gracias.

  3. Oscar, ya resolv铆 la consulta de las copias de las aplicaciones. Las dej贸 en UsersLCRAMIREZCDocumentsJDevelopermywork , seguramente no me fij茅 en la configuraci贸n al instalarlo. saludos.

    1. De igual forma puedes revisar la URL en donde se cre贸 el proyecto al entrar a las propiedades del proyecto, para lo cual solo realizamos un click derecho sobre el proyecto en cuesti贸n y listo, en la primera opci贸n del men煤 izquierdo encontraras la URL.
      Saludos.

  4. Tengo 20 d铆as de vacaciones. Oscar, quisiera saber si tengo un limite de preguntas que pueda hacer en este blog, o podr铆a consultarle abiertamente, obviamente con la espera correspondiente. Saludos

  5. Oscar buenos d铆as, como est谩. Quer铆a consultarle sobre este error generado en una JSP: “no tag library could be found with this uri”. Tengo entendido que se genera porque no empata el atributo uri con el que se encuentra en el archivo descriptor .tld. Quisiera saber como lo puedo configurar en mi ventana del web.xml, secci贸n “tag libraries” en jdeveloper11g, y como s茅 cual archivo .tld se debe cargar, en donde est谩 ubicado. Por otro lado, quer铆a recomendarle por favor si tiene o sabe de alguna gu铆a con ejemplos cortos sobre el env铆o/manejo de datos desde jsp con servlets DAO. Ya super茅 lo del Data Source, ya pude hacer la conexi贸n desde weblogic. Pero ahora quiero usando la conexi贸n con el Data Source capturar datos en una JSP (o enviarlos desde una clase) y manejarlos con un servlet que los reciba con DTO y los procese con DAO para insertarlos en la DB. He encontrado unos ejemplos que son muy extensos y tienen cosas adicionales que me confunden y no me dejan ver la esencia b谩sico de lo que necesito. Gracias saludos.

    1. Hola Luis, sin ver tu c贸digo es complicado saber con precisi贸n que est谩 pasando, lo qu茅 te puedo decir es que probablemente desde tu IDE estas usando una versi贸n distinta que la que soporta el Runtime del Weblogic, lo que te propongo que realices para validar si este es el problema es que agregues la Liberia jstl.jar que est谩 utilizando desde el IDE al paquete WEB-INF/lib de tu proyecto, es importante que cuando generes el War, esta Liberia se incluya, deploya y veremos si efectivamente este fue el problema.

      Con respecto a lo del JSP, de momento no tengo nada en mi blog que hable de esto, pero te puedo invitar a que veas la siguiente p谩gina (http://www.tutorialspoint.com/jsp/jsp_database_access.htm) en donde hablan de c贸mo realizar las operaciones b谩sicas de los JSP.

      1. Voy a revisar lo recomendado. De otro lado acabando de ver la p谩gina recomendada sobre operaciones a la DB desde la JSP, me sorprendi贸. Pero qu茅 es mejor, hacer esas operaciones desde un servlet usando DAO, o desde una clase, o desde la JSp?. La verdad no hab铆a tenido oportunidad de verlas dentro de la JSP, es algo nuevo. Pero seg煤n lo que he leido, esto mezcla la capa de presentaci贸n con la persistencia. Pero est谩 muy interesante. saludos, y gracias

        1. Realizar la persistencia desde un DAO obedece a la famosa arquitectura de 3 capas, en donde tienes una capa de presentaci贸n, una segunda de negocio y la tercera la capa de persistencia. En este caso el DAO representa la tercera capa. Si hablamos de buenas pr谩cticas y ventajas, desde luego que persistir desde un DAO ser铆a mucho mejor, aun que requiere un conocimiento un poco superior, si lo que quieres es aprender a guardar en base de datos, y estas trabajando en un proyecto did谩ctico, ser铆a buena opci贸n que lo hagas directamente y ya que te sientas seguro pases a implementar un arquitectura de 3 capas.

          1. Si si de acuerdo, por eso es que busco ejemplos muy sencillos, los entiendo y luego voy ampliando y conociendo mas. gracias, saludos

  6. Hola Oscar. Hice la copia del jstl.tl en el directorio mas semejante al que usted me indic贸: “C:UsersLCRAMIREZCDocumentsJDevelopermyworkServletBasicoDaoProject1public_html”, pero no me funcion贸. El foldercito WEB-INF/ si aparece dentro del Application navigator del jdev11g, pero en las carpetas en el exploraodor no la encontr茅. En Fin, dado que usted me dijo que era un jstl, consult茅 y encontr茅 que hab铆a que adicionarle al proyecto las JSP Tag Libraries en las propiedades del proyecto enb jdev11g, y ahi aparecen todas, incluida la jstl Core que era la del error de la JSP, ya me corri贸 la JSP. Voy a seguir revisando mi ejemplo. Gracias, saludos.

  7. Que tal Oscar como est谩. Quer铆a consultarle sobre el tema de los DAO. Ya hice mis ejemplos DAO con clases sencillas, y luego otro ejemplo usando una interface que contiene todas las operaciones para aplicar con el DAO. He visto unos ejemplos usando servlets, y que tambi茅n usan la interface que contiene todas las operaciones para aplicar con el DAO. S茅 que muchas cosas se pueden hacer con diferentes t茅cnicas, pero mi pregunta es: si decido usar servlets con DAO es porque principalmente mi aplicaci贸n ser谩 distribuida o ser谩 accedida por varios usuarios por red o por internet?, o si decido usar clases normales y la interface es porque mi aplicaci贸n ser谩 local/standalone?, o esto no tiene nada que ver?, o yo podr铆a para una aplicaci贸n distribuida y montada sobre internet usar mis clases normalitas sin servlets?. Gracias, saludos.

    1. Que pregunta m谩s interesante, te comento que esto que preguntas es m谩s com煤n de lo que imaginas cuando un empieza con esto del JavaEE.
      Primero que nada te comento que utilizar un Servlet como DAO no es una buena pr谩ctica, debido a que la naturaleza del Servlet es la de servir p谩ginas web o servir como puente entre el navegador y el servidor, el Servlet b谩sicamente lo que hace es construir la p谩gina web de forma din谩mica bas谩ndose en recursos externos como pueden ser los par谩metros de entrada o consultas a base de datos, lo que t煤 puedes hacer es seguir utilizando tu servlet pero delegar la responsabilidad de acceso a datos a las clases que ya tienes, de esta forma separa la l贸gica de acceso a datos con la capa de presentaci贸n y controles.
      Por otra parte, hablar de aplicaciones distribuidas es un tema mucho m谩s complejo y te puedo decir que est谩 en la sima del aprendizaje Java, ya que son much铆simos factores lo que hay que tener en cuenta para que un aplicaci贸n sea distribuida y funcione correctamente, pero si estas interesado en crear componentes de BackEnd te recomiendo que le des una lectura a la especificaci贸n de EJB 3 la cual para m铆 es la mejor para componentes del lado del servidor.

      Saludos.

  8. Es decir, como dijo usted, para fines didacticos, y ahora como buena practica, puedo dejar mis clases normalitas e interface para que manejen el DAO, y el servlet (que no debe contener ni DAO ni nada que opere sobre la DB) solamente para hacer las p谩ginas din谩micas o llamar a las JSP ?. Gracias por los comentarios. Voy a ver como me sale el ejemplo con servlet. Usted conoce sobre el framework ADF?, tendr茅 que implementarlo en mis ejercicios, pero ser谩 m谩s adelante. le recomiendo algo para pre Dummies, para leer mas adelante. Saludos.

    1. Es correcto, los servlet o jsp 煤salos solo para construir tu p谩gina y utiliza tus clases para el acceso a datos, con respecto al framework de ADF la verdad yo he trabajado con la versi贸n 11g y he tenido una muy mala experiencia, es un framework con muchos bugs y muy lento en tiempo de ejecuci贸n, aunque destaco que tiene componentes gr谩ficos muy potentes. Desconozco si la versi贸n de ADF 12c mejore muchas de estas cosas, pero en mi experiencia no lo recomiendo.

  9. Que pena Oscar le hago la 煤tima consulta para aclarar algo. Es que acabo de ver este c贸digo de un servlet (aunque no es el que voy a estudiar) que est谩 referenciado en un web.xml (se llama desde una JSP) y lo que veo es que el m茅todo del servlet est谩 haciendo operaciones pero sobre el DTO, aun asi el servlet sigue separando la l贸gica con el acceso a la DB, pues los DTO son un nivel intermedio entre la BD y un componente, cierto?.

    protected void process(HttpServletRequest request,
    HttpServletResponse response) throws ServletException, IOException {
    Employee employee = new Employee();
    employee.setEmpNo(Integer.parseInt(request.getParameter(“empNo”)));
    employee.setEmpName(request.getParameter(“empName”));
    employee.setEmpSal(Long.parseLong(request.getParameter(“empSal”)));

    EmployeeService employeeService = ServiceFactory.getEmployeeService();
    RequestDispatcher dispatcher = null;
    int status = 0;

    referencia:
    http://learnasmaster.blogspot.com.co/2014/01/jsp-servlet-service-dao-example.html

    Muchas gracias. Me voy a trotar un rato. Saludos.

    1. Es correcto, los DTO o Data Transfer Object son un patr贸n de dise帽o que permite crear representaciones m谩s simples de los objetos de negocio o Entidades, las cuales son utilizadas para transferir datos entre el backend y la interface gr谩fica.

  10. Que tal Oscar. Quer铆a consultarle sobre el tema de autenticaci贸n de usuarios. He visto que una de las t茅cnicas es dejarle ese trabajo al servidor de aplicaciones, en mi caso weblogic, y usar en la html/jsp una etiqueta action con 鈥渏_security_check鈥. Lo que he le铆do es que se deben crear primero los usuarios en la consola del servidor de weblogic para que la autenticaci贸n sea autom谩tica. Pero tengo una duda sobre su uso. Si yo tengo mi aplicaci贸n web y quiero tener en una tabla de mi DB los usuarios de mi aplicaci贸n web, concluir铆a yo que no deber铆a usar la autenticaci贸n con 鈥渏_security_check鈥, lo digo porque si espero que mi aplicaci贸n sea usada por muchos usuarios no tendr铆a entonces que ingresar a weblogic y ponerme a crear 20, 30 usuarios. O como funciona la t茅cnica?, pues yo asum铆a que si quiero autenticar usuarios pues yo crear铆a una tabla en mi DB y con los datos del usuario desde html/jsp los consultar铆a en mi tabla de usuarios y ya. Esos usuarios que se crean en weblogic para ser autenticados son los que se logean para qu茅?, para hacer actividades administrativas o son usuarios externos que uno conoce previamente y por eso se deben crear previamente en weblogic. En mi caso de la vida real, las aplicaciones web de la entidad en la que trabajo requieren autenticaci贸n de usuarios, y la entidad en la que trabajo es de estad铆sticas a nivel nacional, de manera que realmente no me suena (鈥渘o me parece funcional鈥) tener que crear cientos de usuarios en weblogic, o ser谩 que quiz谩s no se autentiquen con 鈥渏_security_check鈥?
    Saludos, gracias y buena noche.

    1. Hola Luis, tu pregunta es amplia y tratare de responderla de la forma m谩s simple y concreta. T煤 puedes decidir entre autenticar a tus usuarios directamente con el weblogic o crear una base de datos con tus usuarios. En realidad el resultado puede ser el mismo, sin embargo existen algunas ventajas/desventajas que ofrece cada uno. Si lo que quieres es una autenticaci贸n muy personalizada donde los privilegios se asignan a nivel recursos de la aplicaci贸n o tienes reglas muy complejas para determinar si un usuario tiene privilegios o no, entonces te recomiendo una autenticaci贸n por Base de datos, ya que desde aqu铆 podr谩s implementar la l贸gica que gustes. Pero si este no es tu caso y los privilegios son por roles entonces te recomiendo utilizar un SQL Authentication Provider de weblogic, este te permitir谩 autenticarte mediante el weblogic pero a trav茅s de una base de datos custom. Lo que haces es configurar los query para que weblogic sepa c贸mo debe de logearce cada usuario, saber a qu茅 rol pertenece, etc. Podr谩s encontrar m谩s informaci贸n en la siguiente liga: http://docs.oracle.com/cd/E14571_01/web.1111/e13707/atn.htm#SECMG190

      1. muchas gracias Oscar, voy a revisar el link recomendado que parece estar bien completo. Estoy ahora pensando en reinstalar el jdeveloper pues no se que pas贸 y no puedo cargar la consola de weblogic, no he hecho absolutamente ning煤n cambio, ni siquiera de windows, …pero bueno, …tendr茅 que tener weblogic disponible y ver el tema….saludos, y gracias.

  11. Saludos Oscar. Le cuento que ya estoy involucrado con un proyecto web en mi trabajo, tenemos ADF, EJB, JSPX, poco a poco espero aprender bastante. Buena semana santa.

  12. Buen dia Carlos tengo creado un datasource (jdbc/as400DB)y su respectivo pool de conexiones (eis/DB/as400DB)en la consola del weblogic (10.3.6) apuntando a estos cree un dbadapter en jdeveloper y un respectivo proyecto en eclipse que desplegu茅 en el servidor local. El hecho es que lo probe y funciono sin errores, pero actualmente trato de probarlo y me devuelve esta excepcion: La llamada ha dado como resultado un error: Fallo de llamada de servicio saliente de JCA con error de aplicaci贸n, excepci贸n: com.bea.wli.sb.transports.jca.JCATransportException: oracle.tip.adapter.sa.api.JCABindingException: oracle.tip.adapter.sa.impl.fw.ext.org.collaxa.thirdparty.apache.wsif.WSIFException: servicebus:/WSDL/MiTigoApp/GetCorporateProfile/V1.0.0/UTILITY/JCA/GetCorporateProfile [ GetCorporateProfile_ptt::GetCorporateProfile(GetCorporateProfileInput_msg,GetCorporateProfileOutputCollection) ] – WSIF JCA Execute of operation ‘GetCorporateProfile’ failed due to: No se ha podido crear/acceder a la sesi贸n de TopLink.

    Uso Oracle Fusion Midleware 11g weblogic 10.3.6 y jdevelopr 11.1.7

    1. Hola Naldy, por lo que comentas, el data sources ya te funcionaba y de la nada dejo de funcionar, es correcto?

      si eso es as铆, entonces no se me ocurre m谩s que dos cosas, o le movieron algo al Datasource/interface o hay alg煤n problema con la conexi贸n a la base de datos, yo probar铆a intentar conectarme a la base de datos mediante un cliente externo, utilizando los datos que est谩n registrados en el DataSource, si la conexi贸n se lleva a cabo, realizar铆a un ping desde el servidor donde esta el weblogic a la base de datos, para ver si las estas alcanzando por la red. Si el problema no nada de esto, entonces te sugiero entrar al /em y /sbconsole para revisar el historial de cambios de las interfaces/proxys, a lo mejor se fue un cambio indebido.

      Esos son los primeras cosas que har铆a, si nada de esto es, entonces tendr铆a que echarme un clavado a los logs para ver algo m谩s de detalle del error. En el log puedes ver muchas m谩s cosas que no ver谩s en la consola de SOA Suite.

      saludos y suerte.

      1. Buenas tardes, Carlos efectivamente asi es de la nada dejo de funcionar. De acuerdo a lo que me aconsejaste verifique la conexi贸n de manera externa y no se puede establecer aparentemente hay un problema con el ambiente de base de datos. De modo que hasta que se restablezca debo pensar que esa es la raz贸n de la excepci贸n.
        Saludos y gracias por la atencion

  13. Buenas tardes Oscar,
    Primero que todo felicitarte por el articulo, es bastante ilustrativo y claro.
    S茅 que 茅ste articulo es de hace un tiempo, pero de pronto me puedes ayudar con algo que me pasa.
    Resulta que tengo una aplicaci贸n en weblogic 12c que utiliza datasource creado all铆 mismo. En algunas ocasiones me ha salido el siguiente error:

    Wed Jul 04 08:42:01 COT 2018
    ******************************************************************************************
    java.sql.SQLException: JDBCDAOFactory: No pudo tomar una conexi脙鲁n del Pool de Conexiones.
    at co.edu.eafit.database.JDBCDAOFactory.getConnection(JDBCDAOFactory.java:284)
    at co.edu.eafit.database.JDBCDAOFactory.executeQuery(JDBCDAOFactory.java:789)
    at co.edu.eafit.util.login.control.UsuarioDAOImpl.autenticarConApp(UsuarioDAOImpl.java:341)
    at co.edu.eafit.util.login.control.UsuarioControl.autenticarConApp(UsuarioControl.java:144)
    at co.edu.eafit.util.login.vista.UsuarioAction.ingresar(UsuarioAction.java:195)
    at sun.reflect.GeneratedMethodAccessor291.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)
    at co.edu.eafit.control.EafitActionNoSesionAbs.dispatchMethod(EafitActionNoSesionAbs.java:69)
    at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
    at org.apache.struts.actions.MappingDispatchAction.execute(MappingDispatchAction.java:169)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
    at co.edu.eafit.control.EafitRequestProcessor.processActionPerform(EafitRequestProcessor.java:63)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:751)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:844)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:346)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:243)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3432)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3402)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
    at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)
    at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2285)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2201)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1572)
    at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:255)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:263)

    Este error seg煤n lo que se observa es porque alcanza el limite de conexiones establecido para el datasource, lo que me causa curiosidad es que yo realizo por la consola un reinicio del datasource pero el error sigue saliendo despu茅s de iniciarlo. Lo 煤nico que me ha funcionado es reiniciar la aplicaci贸n o en algunos casos el servidor.
    Es esto normal?… no deber铆a solucionarse con el reinicio del datasource?

    Muchas gracias por lo que me puedas colaborar.

    1. Hola Juan, lo observaci贸n es correcto, el datasource llega al l铆mite de conexiones que es posible crear, por otra parte, puedes incrementar el l铆mite de conexiones para mitigar este error, sin embargo, debes identificar si realmente necesitas m谩s conexiones o la aplicaci贸n no est谩 devolviendo las conexiones al Pool. Aumentar el l铆mite de conexiones no servir谩 de nada si la app no regresa las conexiones, si acaso, prolongar谩s el tiempo con el que se presenta el error.

Deja un comentario

Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *