SAP PI/PO Enable Web Service Compression

Many people don’t know the web services has a feature to compress the information for request and response to exchange data between client and server.

The advantages of using this feature are that you can send high volume information in web services without reducing the performance, for example, you can send an XML payload of size 40 MB compressed in some 800 kb.

To enable this you need to add some headers in your web service consumer client. In case to PI/PO the equivalent is adding these parameters in SOAP module adapter configuration:Screenshot_20170814_174631 Like this:

Screenshot_20170814_173354

But you need check which direction of the communication channel is configured, in the previous SAP PI documentation describe the configuration:

The receiver SOAP adapter uses these parameters for the request message; the sender
SOAP adapter uses these parameters for the response message.

If you’re using a Java client with axis you could enable this feature adding this lines into your Out Binding Stub class:

org.apache.axis.client.Call _call = createCall();
// other conf props...
_call.setProperty(HTTPConstants.MC_ACCEPT_GZIP, Boolean.TRUE);
_call.setProperty(HTTPConstants.MC_GZIP_REQUEST, Boolean.TRUE);

This is imperceptible for PI/PO because into the PIMON you can see the message size as normal size, you can check the web service consumer to validate if the request is compressed or not.

Regards

SAP PI – Install SAP Netweaver Developer Studio 711/731

Las versiónes del NWDS solo están disponibles para windows de 32 bits, por lo que debes tener como prerequisitos la Oracle JVM 1.6 instalada (o superior). Una vez cubierto esto la instalacón es realmente muy simple.

Descargas la verisón que corresponde con tu PI de estos enlaces:

Una vez que descargas el zip, lo descomprimes y ejecutas el archivo “SapNetweaverDeveloperStudio.exe“. Para poder utilizarlo debes tener instalada la JDK, si estás utilizando la JRE te va a mostrar un mensaje de error. Seguir leyendo

Install Java JDK on Server (Suse)

La instalación del a jdk en servidores Unix puede generar a veces algunos problemas ya que generalmente no hay una guía exacta para realizar la instalación, pero desde mi punto de vista creo que también se debe a que en internet hay muchas formas de hacerlo y también es verdad que Unix lo permite, por lo tanto no hay una forma “correcta” de hacerlo.

Sin embargo hay una forma de mantener un orden dentro de todo este caos, por ejemplo hay servidores que a veces necesitan tener instaladas dos o más versiones de la jdk en el mismo server… y ¿como controlamos esto? este tipo de cuestiones son las que causan esos problemas  a los que me refiero porque muchos ajustamos variables de entorno y terminamos creando un dessatre, y bueno antes de mostrar la instalación quería transmitir esta pequeña perspectiva.

El siguiente comando es el que nos a ayudar en Suse a controlar esto:

update-alternatives

Nota: en Ubuntu el equivalente es el comando alternatives
Seguir leyendo

Hibernate / JPA Clear Cache

Manejar persistencia puede ser un poco complejo si no se conoce el funcionamientos de los caches, generalmente cuando tienes configurado el framework para utilizarlos tienes que actualizar los datos obligatoriamente desde el código de tu aplicación.

Si por alguna razón los datos son actualizados en la base de datos y el framework no tiene conocimiento de estos cambios, en el cache vas a tener la información vieja e inconsistente.

Esto NO es un error, depende de la forma en como configuras tus querys y de la arquitectura de tu aplicación.

Para poder indicarle al framework que se ejecute el refresh de forma manual al cache de Nivel 1 puedes hacerlo mediente el siguiente código:

  • Para JPA obtienes la referencia al EntityManager o EntityManagerFactory y ejecutas el método clear().
  • Para Hibernate debes utilizar el método evict().

Es muy importante conocer en que puntos de tu aplicación debes utilizar el cache ya que puede ser integral en todas tus consultas, por entidades o por querys.

Lo recomendable es aplicarlo en consultas recurrentes o de catálogos.

Referencias:

Saludos!

Set System Variables in Windows


En ocasiones tenemos los permisos restringidos y no podemos accesar a la configuración de variables del sistema de windowos, pero… existe una alternativa (solo windows 7 y 8).

Puedes establecer y modificar las variables desde la terminal, en el siguiente ejemplo se muestra como agregar la variable para Maven:

Abres una terminal y escribes los siguientes comandos:

setx M2_HOME "C:\Users\asanchez\Apps\apache-maven-3.2.1" /M
setx PATH "%PATH%,%M2_HOME%\bin" /M

Con esto ya tenemos cargadas las variables.

Nota: Para que los cambios se vean reflejados debes cerrar y abrir la terminal.

Espero sea útil. Saludos!

Referencias