Purchased book list in #packt5dollar sale
TweetPosted on Tuesday Jan 06, 2015 at 11:18PM in Technology
The list grown rapidly and widely covered my interests. it's hard to pick one to read first and maybe I need iPad or something because I have too much to read...
- Mastering JavaServer Faces 2.2
- JBoss Weld CDI for Java Platform
- Mastering Apache Maven 3
- WildFly Configuration, Deployment, and Administration - Second Edition
- Git Best Practices Guide
- Jenkins Continuous Integration Cookbook - Second Edition
- Responsive Web Design with HTML5 and CSS3
- IntelliJ IDEA Essentials
- PostgreSQL 9 Admin Cookbook
- Highcharts Essentials
- Learning OpenShift
- OpenShift Cookbook
- Apache Roller 4.0 – Beginners Guide
I'm surprised that many WildFly books are published from Packt Publishing. also I found Apache Roller book so I bought it too because I'm a beginner of Roller. it targets to version 4.0 and sounds little obsolete, but it would make sense for me.
I found someone wrote that $5 sale is held for every year-end holidays at Packt Publishing so I would buy many books again in next time if the sale will be held surely.
Tags: book
Index needed on jobexecutionid column in step_execution table
TweetPosted on Monday Jan 05, 2015 at 09:56PM in jberetweb
Today I deployed new jberetweb to my production system which have 1 million rows in step_execution table, and felt jberetweb slow. I looked it and found the cause is sequential scan.
jbatch=# explain analyze select * from step_execution where jobexecutionid = 384846; QUERY PLAN ------------------------------------------------------------------------------------------------------------------ Seq Scan on step_execution (cost=0.00..36817.53 rows=4 width=626) (actual time=101.046..101.047 rows=2 loops=1) Filter: (jobexecutionid = 384846) Rows Removed by Filter: 1102459 Total runtime: 101.074 msSo I created an index on jobexecutionid column in step_execution table, then jberetweb starts running fast.
jbatch=# create index step_execution_jobexecutionid_idx on step_execution (jobexecutionid); CREATE INDEX jbatch=# explain analyze select * from step_execution where jobexecutionid = 384846; QUERY PLAN ---------------------------------------------------------------------------------------------------------------------------------------------------- Index Scan using step_execution_jobexecutionid_idx on step_execution (cost=0.43..8.50 rows=4 width=626) (actual time=0.054..0.056 rows=2 loops=1) Index Cond: (jobexecutionid = 384846) Total runtime: 0.113 msMaybe more indexes are needed for default JBeret schema if I implement some filtering function to jberetweb.
jberetweb TODOs
TweetPosted on Sunday Jan 04, 2015 at 10:37PM in jberetweb
Just for memo. I think this list could be moved to GitHub's issue tracker.
Operation support for various application archive / remote interface- Save preferences such as visible columns to cookie
- Change some of Integer id columns to Long
- Refreshing of execution detail part
- Variable / closable table area
- In-cell editing of a value of job parameter table
- Add clear button to job parameter table
- Improve pagination for larger data set
- Jump to specified execution id or page number directly
- Clickable page numbers (1 2 3 4 5...)
- Selection of number of rows in single page
- Job schedule managing (like cron) with EJB programmatic timer
- Job name completion (with JobOperator#getJobNames() ?)
- Filtering / Sorting
- Show BatchStatus=FAILED only etc
- Sorting in ascending order
- Covering omitted information
- job_execution.exitstatus, job_execution.restartposition etc
- Checkpointinfo would be useful. just pass it to String.valueOf() after deserialize
- Testing against MySQL, Derby, H2, newer WildFly etc
- Row highlighting/coloring for various statuses (STARTING/STARTED/STOPPING/STOPPED/ABANDONED). currently cares COMPLETED/FAILED only.
- Refactoring (especially I think current CSS/HTML design is terrible due to my bad in client side web technology)
- Use of REST API (would following spec of BatchEE be good?)
Tags: jbatch
Job operation features are implemented to jberetweb
TweetPosted on Sunday Jan 04, 2015 at 09:26PM in jberetweb
Now jberetweb is able to operate JobOperator interface through remote EJB invocation, so finally jberetweb can start batch jobs. the Start Job window popups when "Start Job" anchor is clicked on the upper right corner. here's a screenshot:
To use this feature, some preparation are needed. first, you have to expose a remote EJB interface of javax.batch.operations.JobOperator from your batch application archive. an example of simplest one is available here. also entire of the project is here.
You can just put this class to any package in your batch application archive. after that, you can see some notification of JNDI names in your WildFly console at every deployment like this:
21:06:45,501 INFO [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-10) JNDI bindings for session bean named JobOperatorFacade in deployment unit deployment "jbatchtest-1.0-SNAPSHOT.war" are as follows: java:global/jbatchtest-1.0-SNAPSHOT/JobOperatorFacade!javax.batch.operations.JobOperator java:app/jbatchtest-1.0-SNAPSHOT/JobOperatorFacade!javax.batch.operations.JobOperator java:module/JobOperatorFacade!javax.batch.operations.JobOperator java:jboss/exported/jbatchtest-1.0-SNAPSHOT/JobOperatorFacade!javax.batch.operations.JobOperator java:global/jbatchtest-1.0-SNAPSHOT/JobOperatorFacade java:app/jbatchtest-1.0-SNAPSHOT/JobOperatorFacade java:module/JobOperatorFacade
Then save first one of yours ("java:global/jbatchtest-1.0-SNAPSHOT/JobOperatorFacade!javax.batch.operations.JobOperator" for example), then put that string to a build parameter of jberetweb (after "-DjobOperator.jndi="). please refer "How to use" section of README.md for build instruction.
Other operations such as restart, stop, abandon are implemented too so I will write more about it later. jberetweb can be obtained from GitHub.
Recent technical book wishlists
TweetPosted on Friday Jan 02, 2015 at 10:45PM in Technology
I'd like to study more about these technologies: Java EE 7(JSF, JPA, CDI and more), HTML5, CSS3, and related ones.
Java EE:
- Mastering JavaServer Faces 2.2 (published on 2014, book review by dzone.com)
- Pro JSF and HTML5 Building Rich Internet Components (published on 2013, JSF 2.2 compilant)
- Pro JPA 2, Second Edition (published on 2013, JPA 2.1 compliant)
- JBoss Weld CDI for Java Platform (published on 2013, CDI 1.0 (Java EE 6) compliant? [2])
- WildFly 8 Administration Guide (published on 2014, "Updated to WildFly 8.2.0 ! The only WildFly book that is constantly updated.")
- Real World Java EE Patterns "Rethinking Best Practices, A book about rethinking patterns, best practices, idioms and Java EE 6." (table of contents)
- Professional Java EE Design Patterns (published on 2014)
- Java EE 7 Recipes (published on 2013)
- Java Performance (published on 2012) "useful things to know about the JVM from one of the developers. i.e. not just about performance. Published 2012."
- Learning Web Design, 4th Edition (published on 2012)
- Pro HTML5 Programming 2nd Edition (published on 2011)
- Maven: The Definitive Guide, 2nd Edition (will be published on May 2015 est)
- Maven Build Customization (published on 2014)
- Pro JavaFX 8 (published on 2014)
- Firebug 1.5: Editing, Debugging, and Monitoring Web Pages (published on 2010)
- Recommended Ebook reader for personal tech book library? : programming
- Programming and other professional books - paper or digital? - Ars Technica OpenForum
References:
Tags: book