| :index-group: JPA |
| :jbake-type: page |
| :jbake-status: status=published |
| = Reload Persistence Unit Properties |
| |
| This example aims to simulate a benchmark campaign on JPA. |
| |
| First you’ll run your application then you’ll realize you need an L2 |
| cache to conform to your Service Level Agreement (SLA). |
| |
| So you change your persistence.xml configuration, then restart your |
| application, you wait a bit because you are using OpenEJB ;)…but you |
| wait… |
| |
| So to try to go faster on long campaign simply change your configuration |
| at runtime to test it then when it works change your configuration file |
| to keep the modification. |
| |
| To do it we can simply use JMX. |
| |
| OpenEJB automatically registers one MBean by entitymanager (persistence |
| unit). |
| |
| It allows you to change your persistence unit properties even if more is |
| possible. |
| |
| == The test itself |
| |
| The test is simple: we persist an entity, we query it three times |
| without cache then we activate cache and realize running again our |
| queries that one is enough to do the same. |
| |
| == The output |
| |
| In the ouput we find the 3 parts described just before. |
| |
| [source,java] |
| ---- |
| INFO - TEST, data initialization |
| DEBUG - <t 1523828380, conn 93608538> executing stmnt 1615782385 CREATE TABLE Person (id BIGINT NOT NULL, name VARCHAR(255), PRIMARY KEY (id)) |
| DEBUG - <t 1523828380, conn 93608538> [1 ms] spent |
| DEBUG - <t 1523828380, conn 1506565411> executing prepstmnt 668144844 INSERT INTO Person (id, name) VALUES (?, ?) [params=?, ?] |
| DEBUG - <t 1523828380, conn 1506565411> [0 ms] spent |
| INFO - TEST, end of data initialization |
| |
| |
| INFO - TEST, doing some queries without cache |
| DEBUG - <t 1523828380, conn 1506565411> executing prepstmnt 1093240870 SELECT t0.name FROM Person t0 WHERE t0.id = ? [params=?] |
| DEBUG - <t 1523828380, conn 1506565411> [0 ms] spent |
| DEBUG - <t 1523828380, conn 1506565411> executing prepstmnt 1983702821 SELECT t0.name FROM Person t0 WHERE t0.id = ? [params=?] |
| DEBUG - <t 1523828380, conn 1506565411> [0 ms] spent |
| DEBUG - <t 1523828380, conn 1506565411> executing prepstmnt 1178041898 SELECT t0.name FROM Person t0 WHERE t0.id = ? [params=?] |
| DEBUG - <t 1523828380, conn 1506565411> [1 ms] spent |
| INFO - TEST, queries without cache done |
| |
| |
| INFO - TEST, doing some queries with cache |
| DEBUG - <t 1523828380, conn 1506565411> executing prepstmnt 1532943889 SELECT t0.name FROM Person t0 WHERE t0.id = ? [params=?] |
| DEBUG - <t 1523828380, conn 1506565411> [0 ms] spent |
| INFO - TEST, queries with cache done |
| ---- |