1 / 55

The power of DOTS

The power of DOTS. Frank van der Linden, e-office. Frank van der Linden & e-office. @flinden68. http://www.domino-weblog.nl. nl.linkedin.com/in/flinden68. fli@e-office.com. Roadmap. Introduction Setup your environment My first DOTS tasklet Debug the DOTS tasklet

jena
Download Presentation

The power of DOTS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The power of DOTS Frank van der Linden, e-office

  2. Frank van der Linden & e-office @flinden68 http://www.domino-weblog.nl nl.linkedin.com/in/flinden68 fli@e-office.com

  3. Roadmap • Introduction • Setup your environment • My first DOTS tasklet • Debug the DOTS tasklet • Deploy the DOTS tasklet • Tips and tricks

  4. Introduction

  5. Introduction of OSGi • Open Services Gateway initiative • Started in 1999 • Still improved • module system and service platform • OSGi bundles • Can be installed remotely. • No reboot required • Lifecycle

  6. Introduction of OSGi • OSGi and IBM Notes/Domino • Since 8.5.2 • Extension points • Extension Library • DOTS (Domino OSGi Tasklet Service) • OpenSocial Container

  7. Introduction of DOTS • Domino OSGi Tasklet Service • Easy development • Outside in Eclipse IDE • Tasklets can run: scheduled, manual • Next generation agents for Domino • OpenNTF project by IBM since April, 2011 (replaced JAVADDIN project) • Included in IBM Domino 9 Social Edition

  8. Introduction of DOTS

  9. Run! Introduction of DOTS • DOTS Tasklets outperforms over Java Agents! Java Agent: DOTS tasklet: Everything is ready to run > tell amgr run "test\XPagescrash.nsf" 'LongJobAgent' 09.11.2012 19:38:39 JVM: Java Virtual Machine initialized. 09.11.2012 19:38:39 AMgr: Start executing agent 'LongJobAgent' in 'test\XPagescrash.nsf' 09.11.2012 19:38:39 Agent Manager: Agent printing: 181349 09.11.2012 19:41:02 Agent Manager: Agent printing: 2227 09.11.2012 19:41:02 Agent Manager: Agent printing: Finished in 143 secs... - 09.11.2012 19:41:02 AMgr: Agent 'LongJobAgent' in 'test\XPagescrash.nsf' completed execution > load dots > Listening for transport dt_socket at address: 8001 09.11.2012 19:42:40 Domino OSGi Tasklet Container started ( profile DOTS ) > 181349 > 2227 09.11.2012 19:43:22 [DOTS] (annotated) Finished in 41 secs...

  10. Introduction of DOTS • DOTS versus Agents • AMGR is old and complicated • Range • Agents are database depended • DOTS run server wide • DOTS are more flexible • Precise timing

  11. Setup your environment

  12. Setup your environment • DOTS should be installed into a local IBM Domino server • For IBM Domino 9 Social Edition Public Beta, you don’t need to do anything. • For versions 8.5.2 and 8.5.3, • Download DOTS package from OpenNTF • You will also need some Eclipse plugins from Eclipse 3.6.2+

  13. Setup your environment • Create some folders inside your Domino folder • [Domino Program Files]\osgi-dots\rcp\eclipse\plugins • [Domino Program Files]\osgi-dots\shared\eclipse\plugins • Copy files from Eclipse install directory • These plugins will be copied from Eclipse installation • [Eclipse]\plugins

  14. Setup your environment • The DOTS package contains the executables • The jar files in the newly created directories • The executables in the Domino program directory • Copy to • [Domino]\osgi-dots\shared\eclipse\plugins • Copy to • [Domino]\osgi-dots

  15. Setup your environment • Download Eclipse • http://www.eclipse.org/downloads • Eclipse >3.6.2(Eclipse IDE for Java EE Developers) • Download projects from OpenNTF • Domino Debug Plug-in from XPages SDK for Eclipse RCP: http://tiny.cc/XPagesSDK

  16. Setup the Domino Debug Plugin • Accept all next steps • Restart Eclipse

  17. Setup the Domino Debug Plugin • Check Prefences,if Domino Debug Plugin is installed

  18. Setup the target platform [Domino Program Files]\osgi-dots\rcp\eclipse [Domino Program Files]\osgi-dots\shared\eclipse

  19. Setup the Notes Java Api reference

  20. My first DOTS tasklet

  21. My First DOTS tasklet • Create a new Plug-in Project • File  New  Plug-in Project

  22. My First DOTS tasklet • Prepare the DOTS extensions

  23. My First DOTS tasklet • Import DOTS extensions • Deselect «Show only extension points from the required plug-ins» • Find & pick «com.ibm.dots.task» extension from the list • Correct the warning in the Manifest.mf tab, then Save & Close Manifest view.

  24. My First DOTS tasklet • Import Domino package

  25. My First DOTS tasklet • Create the Java class

  26. My First DOTS tasklet • Add somecode.Inthis case a log statement, whichwillprintedto the console.

  27. My First DOTS tasklet • Modify the plugin.xml name of the class tasklet id

  28. My First DOTS tasklet • Now we can run our tasklet • DOTS will run on the Domino server. • There are two ways to run from Eclipse IDE • Run • Run and debug

  29. My First DOTS tasklet • Create a “run configuration”

  30. My First DOTS tasklet • PDE Configuration file should be created, the first time • PDE file is created in the dots workspace

  31. My First DOTS tasklet • Now, lets run the tasklet

  32. Debug the DOTS Tasklet

  33. Debug the DOTS Tasklet • Stop DOTS task • Tell dots quit • Adding debug parameters to notes.ini • DOTS_DEBUGADDRESS=8001 • DOTS_DEBUGSUSPEND=y • Reload DOTS task • Load dots • Dots task will start only when debugger connects

  34. Debug the DOTS Tasklet • Server needs to know what to debug

  35. Debug the DOTS Tasklet • Adding breakpoint to debug the code

  36. Deploy the DOTS tasklet

  37. Deploy your tasklet • DOTS plugins can be deployed as OSGi bundle • As jar file in OSGi plugins folder • As update site • Disable debug parameters • Delete PDE runtime configuration (pde.launch.ini) • Disable suspend feature in debugging (DOTS_DEBUGSUSPEND)

  38. Deploy the DOTS Tasklet • Create a jar file from the plugin • Right Click  Export  Deployable plug-ins and fragments...

  39. Deploy the DOTS Tasklet • Select the plugin and destination • Place exported JAR file into plugins folder, then restart DOTS task • [Domino Program Files]\osgi-dots\shared\eclipse\plugins

  40. Deploy the DOTS Tasklet • Another deploy method, DOTS profiles • It can stored inside a Notes database • Can run in is own profile container • With his own security settings • Can started seperatly “tell profilename run abc”

  41. Deploy the DOTS Tasklet • Creating Profile Repository as NSF • Create an empty Notes database, set ACL as required • Configure DOTS to use profiles database • tell dots quit • set config OSGI_CONFIGURATION_DB=dotsprofiles.nsf • load dots • tell dots profileCreate dots • DOTS profile is created • You can import an updatesite in the profile

  42. Deploy the DOTS Tasklet • Create a Feature project in Eclipse

  43. Deploy the DOTS Tasklet • Create the update site project in Eclipse

  44. Deploy the DOTS Tasklet • Build the update site project

  45. Deploy the DOTS Tasklet • Create an Update Site Database

  46. Deploy the DOTS Tasklet • Open OSGi profile db • Add update site database into Sites section • Restart DOTS task

  47. Tips and tricks

  48. Tips and tricks • Some tips • Schedule tasks • OSGi allows you to refresh bundles without restart, here is how: • Find out the «bundle-id» for the plug-in • Refresh the bundle

  49. Tips and tricks • More tips...Annotations • Annotations is supported in DOTS. • Powerfull way of specify for each method, what to do • @RunOnStart • public void runOnStart( IProgressMonitor monitor ){ • logMessage("Annotated onStart method"); • } • @Run( id="manual") • public void runManual( String[] args, IProgressMonitor monitor ){ • logMessage("Annotated run method with id=manual"); • } • @RunOnStart • @RunEvery( every=60, unit=RunUnit.second ) • @HungPossibleAfter( timeInMinutes=1 ) • public void runEvery60seconds( IProgressMonitor monitor ){ • logMessage( "Called from annotated method every 60 seconds"); • }

  50. Multiple profiles • You may create more than one profiles. • For testing • Tasklets that you use occasionally • Tasklets with different security needs • Heavily loaded Tasklets

More Related