24 April 2012

Generation of deployment environment fails - Reason: CWLDB9014E and Reason: CWWBZ0058E

First of all, this is the task I failed numerous times on, until finally I managed to get past, getting the desired result at the same time. This is because I found some sort of workaround before, but the results were more or less doubtful. Well, this workaround is a bit messy as well, but at least you can benefit from creation of Deployment environment with the wizard, instead of putting DE parts together step by step (and probably missing some parts, which later cause you some, or a lot of, pain).

So, we're talking WPS 6.2.0.0 (a bit obsolete) and 7.0.0.4, deployed vs. DB2 database hosted on z/OS (which probably is the most troublesome circumstance, as you cannot create any objects automatically like in LUW edition). What we try to do is to generate Deployment environment (in any topology - single, distributed or "golden"), while defining databases on z/OS DB2. What we get is failure in this particular part:, where instead of:



you keep getting:

CWLDB9014E: The configuration of component WBI_BPCEventCollector failed.

To make it short, before, I could not find the reason. But recently, I think I found it by looking into FFDC error report, and saw there errors related to failing connection to DERBY database. I wondered why it tries to use Derby when I explicitly requested all databases to be hosted on z/OS, but I will never know (perhaps some buggy ant script, or other config xml issue). Nevertheless, what we need to do is to:

  1. create "dummy" Derby database, just for sake of generation of DE:
    • go to /opt/ibm/WebSphere/AppServer/derby/bin/networkServer
    • run ./ij.sh
    • issue command: connect 'jdbc:derby:/opt/ibm/WebSphere/AppServer/profiles/PPD2UZLB01DMgr/databases/event/PD2UZL.Support/DerbyEventDB/BPD2CEDB;create=true';
    your database has been created and is ready to use, but first:
  2.  add custom user to connect to Derby server
    • edit /opt/ibm/WebSphere/AppServer/derby/derby.properties by adding line
      derby.user."yourUser"=yourpwd
  3. start Derby network server (/opt/ibm/WebSphere/AppServer/derby/bin/networkServer/startNetworkServer.sh)
    Note: default TCP/IP port for derby is 1527
  4. now, get back to DE generation wizard and run it again, but now type in Derby database for your EventDB - server is localhost:1527, user is "yourUser" and password "yourpwd"
  5. finish generation and you should get to successful end of operation
  6. assuming you have already created all necessary database in your target DB (either DB2 on z/OS or other supplier), you now need to redefine jdbc datasource for EventDB to point to the datastore of your choice.
You may of course run into numerous problems before getting your DE working 100% fine but above instruction should at least get you through DE generation wizard.

Good luck, leave a comment or vote in the poll please!







16 comments:

  1. Very good article.Thanks for the information.
    Florida gator forum

    ReplyDelete
  2. Uratowałeś mi mnóstwo czasu.
    Przy najbliższej okazji (mam nadzieję, że taka się zdarzy) wiszę Ci piwo.

    Jacek Zimorodzki

    ReplyDelete
  3. cieszę się że mogłem pomóc. akurat przy tym produkcie trudno się nie natknąć na jakieś niespodzianki. aktualnie BPM jest chyba nieco mniej dziurawy! zapraszam do odwiedzania bloga i pozdrawiam!

    ReplyDelete
  4. hello!

    Could you explain in more details how to create the derby database, please?

    ReplyDelete
  5. hi pasha, create=true flag does the trick, that means that when you first try to connect to the database you want to create, derby creates it for you automatically. you don't need to give any details about table structure whatsoever...and actually you don't need to, as later during deployment WPS creates any objects it needs automatically.
    does that answer your question ?

    comments, fb likes and G+s are kindly welcome :)

    ReplyDelete
  6. Thank you!
    Radek, when I make 'jdbc:derby:/opt/ibm/WebSphere/AppServer/profiles/PPD2UZLB01DMgr/databases/event/PD2UZL.Support/DerbyEventDB/BPD2CEDB;create=true';
    command line writes: ERROR 08001: No suitable driver.
    Is what type of driver? - jdbc?
    If yes, where the driver must be located?

    I used Oracle Database with WebSphere. May be I should change some settings in oracle?

    ReplyDelete
  7. thats because you use path that was correct ofor my system, but not for yours:

    profiles/PPD2UZLB01DMgr/databases/event/PD2UZL.Support/DerbyEventDB/BPD2CEDB

    change that to your respective path you have WPS installed in and figure out what path you need to use. look in dmgr's database subdir

    ReplyDelete
  8. I use such path:

    'jdbc:derby:C:/WPS70/derby/opt/ibm/WebSphere/AppServer/profiles/PPD2UZLB01DMgr/databases/event/PD2UZL.Support/DerbyEventDB/BPD2CEDB'create=true';

    but there is also a mistake.

    ReplyDelete
  9. did you create "PPD2UZLB01DMgr" profile ??

    ReplyDelete
  10. How I can create this profile?
    I know how to create Dmgr profile for ORACLE.

    ReplyDelete
  11. This is the dmgr profile for oracle


    create
    profileName Dmgr
    profilePath C:/WPS70/profiles/Dmgr
    hostName 127.0.0.1
    cellName Cell
    nodeName CellManager01
    serverType DEPLOYMENT_MANAGER
    ndtopology false
    enableAdminSecurity true
    adminUserName vmmuser
    adminPassword vmmuser
    dbDesignEnabled true
    dbDelayConfig true
    enableService false
    wbidbDesign C:/WPS70/util/dbUtils/CommonDB_Oracle.properties
    templatePath
    C:/WPS70/profileTemplates/dmgr.wbiserver
    dbJDBCClasspath C:/app/pmjasnikov/product/11.2.0/dbhome_1/jdbc/lib
    dbType Oracle
    dbHostName 127.0.0.1
    dbName ORCL
    dbPassword ORCL

    ReplyDelete
  12. then in your c:/wps70/profiles/Dmgr directory go to "databases" and look up substitutes for what is "PD2UZL.Support" (cluster name) and "BPD2CEDB" (database name)
    shortly saying: do the same what I did but think and accomodate it to your environment

    ReplyDelete
  13. Unfortunately, I haven't got the folder of "databases".
    In PATH: C:\WPS70\profiles\Dmgr I've got these folders:

    bin
    cim
    config
    configuration
    consolepreferences
    dbscripts
    devicestores
    etc
    firststeps
    installableApps
    installedApps
    installedConnections
    installedFilters
    logs
    properties
    temp
    tmsStorage
    tranlog
    wstemp

    Maybe you know what folder i need?
    please please please)

    ReplyDelete
  14. actually i'm not sure as I did it long time ago. try to create corresponding path, I think I figured it out from the error I got, PWS tried to access such database, but it didn't exist, so I had to create path first, and then issue derby command.

    try to create your path and try again

    ReplyDelete
  15. I found an initial problem CWLDB9014E: The configuration of component WBI_BPCEventCollector failed.

    You should go to Websphere Variables, there are several pages of variables, you should find for your database, for me it was ORACLE (ORACLE_JDBC_DRIVER_PATH). I found 3 variables and only 1 of them was filled. You should fill all of them (write your PATH of jdbc drivers) and try to create deployment environment!

    Everything will be OK!

    ReplyDelete