Are the open and close methods in itemreader and itemwriter the right places to open and close database connection in jsr-352 java batch job? I couldn’t find in spec that when those two methods will be invoked, especially in exceptional senario
1
There are 1 best solutions below
Related Questions in JAVA
- change content button with trigger
- PHP like button(counter) inside a table
- How can I make a button who draws a line
- Scrollable webpage navigation
- Two checkbuttons to toggle sound not working right
- HTML Button Link to Website from Text
- Unity - Gui Button issues (Android)
- I can't click the finish button it seemed to be like disabled or something
- Button Visibility in WPF at startup
- Changing background of button every second
Related Questions in BATCH-PROCESSING
- change content button with trigger
- PHP like button(counter) inside a table
- How can I make a button who draws a line
- Scrollable webpage navigation
- Two checkbuttons to toggle sound not working right
- HTML Button Link to Website from Text
- Unity - Gui Button issues (Android)
- I can't click the finish button it seemed to be like disabled or something
- Button Visibility in WPF at startup
- Changing background of button every second
Related Questions in JSR352
- change content button with trigger
- PHP like button(counter) inside a table
- How can I make a button who draws a line
- Scrollable webpage navigation
- Two checkbuttons to toggle sound not working right
- HTML Button Link to Website from Text
- Unity - Gui Button issues (Android)
- I can't click the finish button it seemed to be like disabled or something
- Button Visibility in WPF at startup
- Changing background of button every second
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Database is one of many data sources for batch jobs, so the batch spec wouldn't prescribe requirements specific to database connection. The answer to your question depends much on how you implement your jdbc item reader and jdbc item writer.
In general, database connections are scarce and expensive resource, and therefore are shared resources. You don't want any part of your application to hold on to connections for long period of time. So a typical pattern is to acquire database connection on-demand, and release (close) it immediately after.
Now look at the lifecycle of jdbc item reader and jdbc item writer. They belong to a step execution, and so their life will span the whole step execution. It is not a good idea to hold on to connection for such a long period of time, especially for connection used in jdbc item writer for updating database records. For example, when implementing JdbcItemWriter, we chose to obtain connection on-demand when ready to write the chunk of data and release connection immediately after usage (i.e., not in
open
orclose
methods). In this case, there is no need to keep the connection open between chunks.For JdbcItemReader, we chose to open connection in item reader
open
method and close it inclose
method. This is because our implementation is based on a live jdbcResultSet
from which to continuously fetch data. Of course, other implementations can choose to cache or detach data and thus not rely on a liveResultSet
, and instead use the on-demand pattern for better resource utilization.