Mai 11th, 2006

Caching von EJB3 EntityBeans

Posted by frank in Java, J2EE

JBoss bietet von Haus aus die Möglichkeit EntityBeans zu cachen. Dazu muss man lediglich Hibernate und seine EntityBeans entsprechend konfigurieren. Vor allem bei sich selten ändernden Beans, wie z.B. Kategorien in einem Shop oder Länder / Sprachen, bietet sich das Caching durchaus an.
In der persistence.xml muss dazu lediglich der CacheProvider für Hibernate entsprechend konfiguriert werden:

<entity-manager>
    <name>mystore</name>
    <jta-data-source>java:/MyStoreDS</jta-data-source>
    <properties>

        <property name=hibernate.hbm2ddl.auto value=none/>
        <property name=hibernate.dialect value=org.hibernate.dialect.MySQLDialect />

        <property name=hibernate.cache.provider_class value=org.jboss.ejb3.entity.TreeCacheProviderHook/>
        <property name=hibernate.treecache.mbean.object_name value=jboss.cache:service=EJB3EntityTreeCache/>

    </properties>
</entity-manager>

Im Property “hibernate.treecache.mbean.object_name” wird entsprechend der dahinter liegende TreeCache definiert.

Damit ein EntityBean auch wirklich in den Cache wandert, muss das Bean noch entsprechend zum Cachen markiert werden.

package com.itblogger.beans;

@Entity
@Cache(usage=CacheConcurrencyStrategy.READ_ONLY)
public class Category implements Serializable {
  int category;
  String categoryName;
}

Weitere Informationen dazu können der Dokumentation zu @Cache und CacheConcurrencyStrategy entnommen werden.

Der Cache selbst kann in der Datei ejb3-entity-cache-service.xml (unter server/default/deploy) oder bei einem eigenen TreeCache genau in dessen XML-Datei gepflegt werden.

<server>
    <mbean code=org.jboss.cache.TreeCache name=jboss.cache:service=EJB3EntityTreeCache>
        <depends>jboss:service=Naming</depends>

        <depends>jboss:service=TransactionManager</depends><attribute name=EvictionPolicyConfig>
            <config>

                <attribute name=wakeUpIntervalSeconds>5</attribute>
                <region name=/_default_>

                    <attribute name=maxNodes>5000</attribute>
                    <attribute name=timeToLiveSeconds>1000</attribute>

                </region>
                <region name=/com/itblogger/beans/Category>
                    <attribute name=maxNodes>10</attribute>

                    <attribute name=timeToLiveSeconds>5000</attribute>
                </region>
            </config>

        </attribute></mbean>
</server>

Für jedes Bean können hier zusätzliche Cacheparameter eingestellt werden.

Mai 10th, 2006

MessageDrivenBeans auf EJB3 Manier

Posted by frank in Java, J2EE
Mai 4th, 2006

JMX die Dritte

Posted by frank in Java, J2EE
April 27th, 2006

JMX die Zweite

Posted by frank in Java, J2EE
April 27th, 2006

JMX die Erste

Posted by frank in Java, J2EE
April 24th, 2006

eigene MBeans im JBoss

Posted by frank in Java, J2EE
April 3rd, 2006

Multicast mit Java

Posted by frank in Linux, Java, J2EE
März 14th, 2006

JBoss - Config Fehler

Posted by frank in Java, J2EE
November 25th, 2005

Lazy Loading im Client / Tomcat bei EJB3 EntityBeans

Posted by frank in J2EE
November 23rd, 2005

Hibernate Konfiguration bei EJB3 und JBoss

Posted by frank in J2EE
« Vorherige SeiteNächste Seite »