Professional Documents
Culture Documents
SAP NetWeaver
Usando Data Source
El SAP NWAS el concepto de "Data Source" puede ser utilizado
para establecer conexiones a la base de datos. Un Data Source
encapsula la BD's usada, el JDBC-Driver es el indicado para
iniciar la session de la información. Aunque la información
puede ser acezada mediante hibérnate, es recomendable el uso del
Data Source, ya que viene con un built-in Connection Pooling -
en contraste con una conexión normal JDBC no es necesario
utilizar un componente de terceros para realizar un pool de
conexiones en SAP NWAS. Este es un servicio automático del
Application Server.
Un Native SQL Data Source sin embargo ofrece una capa adicional
al rededor del controlador. Esto le permite usar SQL Tracing y
Statement Pooling así como unas características adicionales. Esto
aumenta el rendimiento de las aplicaciones, por un lado, por otro lado
puede seguir haciendo declaraciones en el SAP SQL Trace Tool
(Accesible desde el SAP NetWeaver Administrator desde
http://<servername>:<port>).
Configuraciones de Hibernate
<!-- Use EHCache as Cache Provider and use its Query Cache -->
<property name="hibernate.cache.provider_class">
org.hibernate.cache.EhCacheProvider
</property>
<property name="hibernate.cache.use_query_cache">true</property>
<property name="show_sql">true</property>
<property name="current_session_context_class">thread</property>
package org.hibernate.transaction;
<hibernate−mapping>
<class name="com.sap.j2ee.examples.hibernate.Employee"
table="hib_employee">
<cache usage="read−write"/>
...
Ambiente Distribuido
Con el fin de utilizar el almacenamiento en caché en entornos
distribuidos con varios nodos de servidor que debe tener la
coherencia de las caches en consideración. Dado que todos los
nodos de servidor se ejecuta en una máquina virtual de Java,
cada nodo servidor tiene su propio caché de Segundo Nivel, que
tiene que ser sincronizados a través de la agrupación, ya sea
por repetición o por invalidación. Porque el Open SQL Layer no
se puede utilizar para este fin, se puede integrar una
aplicación Open Source Cache. Se pueden utilizar dos proveedores
de cache, JBoss Cache y EHCache, se basan en la multidifusión en
la red para buscar y unirse a un grupo de replicación para el
intercambio o invalidación de mensajes.
<ehcache>
<diskStore path="java.io.tmpdir"/>
<cacheManagerPeerListenerFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
properties="port=40001, socketTimeoutMillis=2000"/>
Los dos primeros son los atributos necesarios para que el "
Automatic Peer Discovery " EHCache proporcione. Como ya se ha
mencionado la red multidifusión se utiliza para este fin.
Además, usted tiene que definir los objetos y colecciones que se
almacena en caché en un entorno distribuido. Por favor refiérase
a la muestra EHCache Configuración y descargar el documento
ehcache.xml muestra en el paquete de EHCache más posibilidades
de configuración, tales como para definir el uso sincrónica de /
replicación asíncrona o invalidación.
(http://ehcache.sourceforge.net/documentation/configuration.html).
Rastreando SQL
Hibernate usa mensajes internos con log4j para registrar los
logs. El SAP NWAS es posible que transmita esta información y
depurar los mensajes del log del servidor de aplicaciones. Esto
también le permite rastrear los informes que SQL Hibernate
genera y lo envía a la BDs. Por lo tanto, usted será capaz de
detectar con declaraciones el mal desempeño en el ámbito de la
optimización de los procesos de ejecución.
### set log levels - for more verbose logging change 'info' to 'debug' ###
### enable the following line if you want to track down connection ###
### leakages when using DriverManagerConnectionProvider ###
#log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=c:/hibernate.log
log4j.appender.file.MaxFileSize=100KB
Usando Hibernate
La última sección abarca algunos aspectos relacionados con el
desarrollo de capas de aplicaciones J2EE con Hibernate en
general.
package com.sap.j2ee.examples.hibernate;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
/**
* This class executes the initial operations to build a Configuration and the *
SessionFactory. Consumers are able to obtain new Session-Objects for each user.
*/
public class HibernateSessionFactory {
private static SessionFactory sessionFactory;
static {
try {
Configuration cfg = new Configuration();
sessionFactory =
cfg.configure("hibernate.cfg.xml").buildSessionFactory();
} catch (Throwable ex) {
System.err.println(
nal SessionFactory creation failed." + ex.getMessage());
"Iiti throw new ExceptionInInitializerError(ex);
}
}
public static Session openSession() throws HibernateException {
Session session = null;
try {
session = sessionFactory.openSession();
} catch (HibernateException e) {
System.err.println(
"Session creation failed." + e.getMessage());
e.printStackTrace();
} return session;
}
public static void closeSession(Session session) {
try {
if (session != null) {
session.close();
}
} catch (HibernateException e) {
System.err.println(
"Initial SessionFactory creation failed." + e.getMessage());
e.printStackTrace();
}
}
}
o Desplegar la librería.
https://www.sdn.sap.com/irj/sdn/softwaredownload?download=/irj/servlet/prt/port
al/prtroot/com.sap.km.cm.docs/business_packages/a1-8-
4/HibernateExampleEHCache.zip