Blog do projektu Open Source JavaHotel

czwartek, 7 marca 2013

DB2 Task Scheduler and web UI

DB2 Task Scheduler allows to run and maintain administrative tasks executed after the predefined schedule. "Administrative task" is nothing more then SQL Stored Procedure designed to do some job. Task scheduler is not enabled by default, in order to activate it one has to configure it manually. DB2 task scheduler is similar to Oracle DBMS_JOB package. Unlike to DMBS_JOB it does not allow to execute SQL code directly, stored procedure should be created before.
There are several DB2 routines which allows to define new task, modify or remove existing task and monitor the current task status. Unfortunately, everything should be done manually. There is no IBM tool which provides  GUI to make this task less painful. Neither IBM Data Studio nor   IBM Data Studio web console do not have any windows or view giving access to task schedule. Job manager available in IBM Data Studio web console is a different solution, it has nothing in common with native DB2 task scheduler.
So I decided to fill the gap and create my own web application covering the DB2 task scheduler.
Read readme.txt, install maven, copy and paste pom.xml file, run:
maven compile
ignore all warnings and deploy target/db2jobscheduler.war.
After launching application the following screen should appear.

The application was tested with Tomcat 7 and Glassfish.
It is an open source project created by virtue of MVC JythonUI framework. This framework has been significantly enhanced ever since.
Java source code (minimalistic) is available here. XML files defining user interface are available here. The most important part, Jython scripts containing all business logic, is available here. zxJDBC  package was used for accessing the DB2 database.
Source code structure
Java code serves only as a glue for initializing and starting the application. The development is focused on XML file describing the UI and Jython script file for business logic. It was the purpose of the JythonUI framework.

Functionality XML files (UI) Jython files (business logic)
Main menu start.xml
Adding and modifying single source list datasource.xml
Data source list connectiondef.xml
List of tasks tasklist.xml
Adding and modifying single task taskdescr.xml
Current task status taskstatus.xml
Helper for displaying a list of SP in the schema proclist.xml
Helper for list of schemas typesenum.xml
Helper encapsulating access to database
Helper encapsulating access to datasource definition
Functionality implemented

Datasource defining
Displays list of datasource available now. Allows adding, modifying and removing datasource definition.

Administrative tasks maintaining
Displays list of scheduled task. Allows adding, modifying and removing tasks.
Task status
Current status of the tasks. 
List is displayed in chunks (there could be thousands of tasks executed already). List can be filtered (display a subset only) and sorted by any attribute.

Current status of the project
It is the first version with simplistic user interface. But all functionality of DB2 task scheduler is implemented.
Future development
  • Improve user interface, help texts, direct connection to appropriate entries in DB2 Infocenter
  • Security, user authentication.
  • Encode database credentials, now password is saved as plain text.
  • User authorization, only authorized user can add new task or modify existing.
  • The same for datasource definition.
  • Make task handling more convenient for the user. "Task" in DB2 is a stored procedure. Current implementation requires defining administrative stored procedure outside application (for instance by  using IBM Data Studio) then enacting it in the task scheduler application. Add simple text editor for creating and modifying stored procedure body in the application and deploying it to the database server without leaving the application.
  • More convenient way for defining the task schedule
  • Keep and maintain task schedule off-line repository. Additional database (for instance in the shape of XML files) containing administrative stored procedure body and task header for later reuse.
  • Copy and paste tasks between databases - for instance copy task definition from test database to production database.
  • More convenient way of disabling/enabling tasks.
  • Export and import of administrative tasks. Task header and stored procedure body.

21 komentarzy:

  1. This wοuld mean mаking hаrd
    choicеs about scraρpіng tax ԁеԁuctions, crеԁit and lender infoгmation, letteгs of геcοmmendation
    and even perѕonal care. Ι recommеnd fοcusing on that 100% and to not provoke damage to anyone, let alone contract with. Some were taken as far as the UK business refuses to give in. Our company offers an item that you can join for free and selling business that.

    Also visit my blog post :: houston internet marketing

  2. Great work! That is the kind of info that should be shared around the web.
    Disgrace on the seek engines for now not positioning this put up higher!
    Come on over and consult with my site . Thank
    you =)

    my weblog; Best Juicing Machines

  3. What's up colleagues, fastidious piece of writing and pleasant urging commented at this place, I am actually enjoying by these.

    Look into my web site best Juicer

  4. Wow! After all I got a web site from where I be capable of in fact take valuable
    information regarding my study and knowledge.

    Also visit my website Acne treatment reviews

  5. you are in point of fact a good webmaster. The site loading velocity is incredible.
    It kind of feels that you're doing any distinctive trick. In addition, The contents are masterpiece. you have performed a magnificent task in this subject!

    Feel free to surf to my blog juicing recipes

  6. Wow! This blog looks exactly like my old one! It's on a completely different subject but it has pretty much the same page layout and design. Outstanding choice of colors!

    My site: espresso maker

  7. This website was... how do you say it? Relevant!!
    Finally I have found something which helped me. Appreciate it!

    Feel free to visit my web-site: top rated juicers

  8. Wow, that's what I was exploring for, what a material! existing here at this webpage, thanks admin of this website.

    My webpage; fb backgrounds **

  9. all the time i used to read smaller content which as well clear their motive,
    and that is also happening with this post which I am reading here.

    My blog post :: juicing diet **

  10. Hmm is anyone else encountering problems with the pictures on
    this blog loading? I'm trying to find out if its a problem on my end or if it's
    the blog. Any responses would be greatly appreciated.

    My weblog; juicing machine (

  11. Hey There. I discovered your blog the use of msn. This is a really well written article.
    I'll be sure to bookmark it and return to learn more of your useful info. Thank you for the post. I'll certainly return.

    My weblog: New Business

  12. Hello! I just wanted to ask if you ever have any issues with hackers?
    My last blog (wordpress) was hacked and I ended up losing a few months
    of hard work due to no back up. Do you have any methods to protect against hackers?

    Also visit my blog: Building Maintenance

  13. I was more than happy to find this page. I wanted to thank you for ones time just
    for this wonderful read!! I definitely enjoyed every bit of it and I have you bookmarked to see new information on your website.

    Also visit my site - Suggested Internet site

  14. It is in point of fact a great and helpful piece of information.

    I am happy that you just shared this useful
    info with us. Please stay us informed like this.

    Thanks for sharing.

    My page Click through the up coming Internet Page

  15. Hello I am so glad I found your weblog, I really found you by mistake,
    while I was looking on Aol for something else, Anyhow I am here
    now and would just like to say cheers for a tremendous post and
    a all round interesting blog (I also love the theme/design),
    I don't have time to read it all at the moment but I have bookmarked it and also added in your RSS feeds, so when I have time I will be back to read more, Please do keep up the awesome job.

    My blog :: trendy fashion

  16. Hi there everyone, it's my first visit at this website, and article is truly fruitful designed for me, keep up posting such posts.

    Feel free to visit my weblog: just click the up coming internet page

  17. Today, I visited the beach front with my kiddies. I discovered a sea shell and gave it to my 4 year old daughter and
    said "You can hear the ocean if you put this to your ear. "
    She put the shell to her ear and screamed. There is a hermit crab inside plus it pinched her ear.
    She never desires to return! LoL I know this really is
    entirely off topic but I had to share with someone!

    Here is my blog post :: simply click the next document (

  18. Hey I know this is off topic but I was wondering if you knew
    of any widgets I could add to my blog that automatically tweet my newest twitter updates.
    I've been looking for a plug-in like this for quite some time and was hoping maybe you would have some experience with something like this. Please let me know if you run into anything. I truly enjoy reading your blog and I look forward to your new updates.

    Also visit my page read the full piece of Writing

  19. When I originally commented I seem to have clicked the -Notify me when new comments are added- checkbox and now every time a comment is added I receive four emails with the exact same comment.
    There has to be a way you can remove me from that service?
    Thank you!

    my web-site :: Agency Pr (

  20. I'd like to find out more? I'd want to find out more details.

    Also visit my weblog: network marketing

  21. I have read a few excellent stuff here. Definitely price bookmarking for revisiting.

    I surprise how so much effort you set to make
    this kind of magnificent informative site.

    Feel free to visit my web blog; education blog