Thursday, December 18, 2014

Fitnesse a testy v DB Oracle

Fitnesse

Framework pro systémové a akceptační testy. Fitnesse vhodným způsobem spojuje možnosti business popisu testů s jejich implementací a provedením. Web Wiki s mechanismy, které umožní na wiki stránky Fitnesse umístit deklarativní předpisy pro povedení testů. Tyto předpisy pak Fitnesse testovací engine (jsou v současné době dva: starší F.I.T. a mladší S.L.I.M.) provádí a výsledky testů jsou přímo zobrazené na wiki stránkách s těmito předpisy (více viz http://www.fitnesse.org).


Jakým způsobem připravit testy, které budou testovat prostřednictvím SQL příkazů v databázi DBMS Oracle?

Zaměřil jsem se na použití novější koncepce provádění testů - S.L.I.M. (Simple List Invocation Method)

SLIM je modernější způsob pro vytvoření předpisů a následné provádění testů v systému FitNesse (http://www.fitnesse.org/FitNesse.UserGuide.WritingAcceptanceTests.SliM)

Postup pro nastavení 

Nastavení a definice na úrovni testovací suite

Do stránky suite je potřeba napsat definici, že budeme používat SLIM, a vhodné je zde uvést cesty ke knihovnám, které budeme přidávat:

!define TEST_SYSTEM {slim}


Příprava knihoven do lib podadresáře

Pro napojení do Oracle databáze budeme potřebovat následující jar soubory:
ojdbc5.jar
dbslim-0.0.1.jar
mchange-commons-java-0.2.8.jar
c3p0-0.9.5-pre10.jar
c3p0-oracle-thin-extras-0.9.5-pre10.jar
log4j-over-slf4j-1.7.7.jar
slf4j-api-1.7.7.jar

Soubory umístěte do podadresáře lib .

Do SetUp stránky testu místěte odkazy na knihovny:

!path lib\*.jar


Nastavení a definice

Stránka SetUp:

!contents


!path lib/*.jar





|Import            |
|fitnesse.slim.test|
|fitnesse.fixtures |
|slim              |


!define COLLAPSE_SETUP {true}
!define COLLAPSE_TEARDOWN {true}

!|SetUp|


Stránka testu:


!include SetUp

<test page>


!|Script|Db Slim Setup|!-oracle.jdbc.driver.OracleDriver-!|jdbc:oracle:thin:@dbhost:1521:database1|user|password|

!define currentModule {mymodule}
!define currentVersion {4.0.2}
!define releasedAt {2014-09-18 12:41:26}

!define dbQuerySelectDbVersion (
select * from T_DB_VERSION
)

!|Script  |Db Slim Select Query        |${dbQuerySelectDbVersion}                    |
|check    |data;                       |C_MODULE     |0            |${currentModule} |
|check    |data;                       |C_VERSION    |0            |${currentVersion}|
|check    |data;                       |C_RELEASED_AT|0            |${releasedAt}    |
|check    |data By Column Index        |2            |and Row Index|0 |${releasedAt} |
|$version=|dataByColumnNameAndRowIndex;|1            |0                              |
|check    |data;                       |C_VERSION    |0            |4.0.2            |


Problémy k řešení

  1. Nastavení cesty v suite nestačí, musím nastavit !path v SetUp stránce testu.
  2. Pokud není správně nastavená cesta k dbslim-0.0.1.jar dostanu chybu:  Db Slim Setup Could not invoke constructor for DbSlimSetup[4] , ale nikde jsem nenalezl vyjímku s stacktrace, která by blíže určovala příčinu. Očekával bych někde ClassNotFound nebo něco podobného. Zkoušel jsem i verbose logování (parametr -v pro rozšířené logování). Hledal jsem v otevřené konzoli fitnesse, v adresáři FitNesseRoot/ErrorLogs a dále nevím, kam se ještě podívat. Když se podaří nastavit sprváně cesta k dbslim-0.0.1.jar , tak u se na stránce testu objeví alespoň Db Slim Setupjava.lang.NoClassDefFoundError: com.mchange.v2.c3p0.ComboPooledDataSource.





Monday, October 27, 2014

Federované repository a autenizace administrátora při nedostupném LDAP ve WebSphere Application Server

Federované repository ve WAS umožňuje kombinovat více repository uživatelů. V základním nastavení ale WAS provede přihlášení pouze v případě, že jsou všechna úložiště přístupná.
Například kombinace file based registry na lokálním disku a LDAP nám v základním nastavení funguje tak, že se ani uživatelé v lokálním úložišti (to bývají především admini) nepřihlásí.

Pokud chceme umožnit přístup administrátora vedeného v lokálním úložišti i přesto, že je nedostupný vzdálený LDAP server s bežnými uživateli, je potřeba na úrovni konfigurace WAS toto nastavit:

$AdminTask createIdMgrRealm -name ibmRealm -allowOperationIfReposDown true


Případně nastavit přes uživatelské rozhraní IBM Console:




Tuesday, August 26, 2014

WebShpere Batch ve WAS 8.5.5

WebSphere Batch ve WebSphere Application Server 8.5.5

Jedná se o WAS subsystém pro batch zpracování. Umožňuje plánované spouštění úloh. Úloha je vždy definována jako sled kroků (step). Jeho výhodou je zaintegrování do topologie network deploymentu WAS. Lze tak připravit složitější úlohy, které se skládají z jednotlivých kroků (step), které budou provozovány paralelně na více serverech. Ty mohou být umístěny na více fyzických strojích. Součástí zpracování je pak i vlastní synchronizace a čekání kroků na dokončení činnosti ostatních. Definice jobů je prostřednictvím standardu xJCL - xml formátu pro definici úloh.

Typy úloh:
Compute-intensive - jednoduchý krátkodobý job
Transaction Batch -  úlohy, které potřebují využívat kontejnerem řízené mechaniskmy checkpointů a restartů. Umožňuje pokračování jobů od posledního checkpointu v případě plánovaného i neplánovaného výpadku.


Návratové kódy úlohy:
Return code Explanation
0
Job ended normally
-1
Internal protocol error - WSGrid utility
-2
Input parameter error - WSGrid utility
-4
Job was suspended
-8
Job was cancelled
-10
Job was forcibly cancelled (z/OS only)
-12
Job failed and is in restartable state
-14
Job failed and is in execution failed state**
-16
Catastrophic failure - WSGrid utility

 
Zajímavé vlastnosti
Parallel processing - WebSphere Network Deployment má manažera paralelního zpracování. To umožňuje rozložit batch na více částí, které mohou být zpracovány více servery najednou. 

Skip record processing - obsahuje mechanismus pro přeskakování vadných záznamů v průběhu zpracování, sledování procentuální úspěšnosti zpracování a možnost logování chybných záznamů. Zpracování může být ukončeno při překročení určitého prahu neúspěšně zpracovaných záznamů.

Retry step processing může být použito pro opakování běhu kroků úlohy. Užitečné pro přechodné chybové stavy, jako je například dočasná nedostupnost cílového systému, batabáze apod. 




Administrace
Role a jejich zodpovědnosti
– lrsubmitter: uživatel s rolí lrsubmitter vidí a může ovládat své vlastní úlohyjobs, but on no others.
– lradmin: lradmin role má autorizaci k ovládání všech jobů bez ohledu na vlastníka
– lrmonitor: lrmonitor role může prohlížet úlohy všech uživatelů, ale nemůže je ovládat.users.

Záludnosti
Pro správnou činnost Job Management Console musí být zapnutá Application Security !!!!!
Bez zapnut0 aplikační security sice JMC zdánlivě chodí, ale zobrazuje pouze View jobs a není možné se z aplikace odhlásit, uživatel je stále 'null' a role se kontroluje vůči UNAUTHENTICATED.


Použité odkazy:

[1] http://www.ibm.com/developerworks/websphere/techjournal/1203_narain/1203_narain.html
[2] http://www.ibm.com/developerworks/websphere/techjournal/1205_narain/1205_narain.html
[3] http://www.ibm.com/developerworks/websphere/techjournal/1210_narain/1210_narain.html 
[4] http://www.ibm.com/developerworks/websphere/techjournal/1303_narain/1303_narain.html
[5] http://www.ibm.com/developerworks/websphere/techjournal/1307_narain/1307_narain.html

Thursday, February 6, 2014

WAS a WPS - lokální repository pro Installation Manager

Tento odkaz popisuje, jak sloučit různá repository a vyrobit jedno lokální repository pro instalace a update:

http://www-01.ibm.com/support/docview.wss?uid=swg27023967&aid=1

Použití IBM Packaging Utility:

The IBM Packaging Utility
- The IBM Packaging Utility is a free companion tool to Installation
Manager
- IBM Packaging Utility and IBM Installation Manager can be used
independently of each other
-IBM Packaging Utility capabilities:
- Generate a new repository containing one or more product repositories
- Delete packages from an existing repository, such as unneeded fix pack levels
- Combine a split repository into a single repository (important for servers)
- Can accept web repositories or local repositories as input, and produces a local
repository at as output
- Can extract offerings for a single operating system from a large repository,
producing a smaller “platform-scoped” repository

BPM 8.5 - learning path

Main objectives

  1. Basic concepts, all BMP components
    • IBM Process Designer  
    • IBM Integration Designer
    • IBM Process Center
      • Process Center server
      • Performance Data Warehouse server
    • Process Admin Console  
    • Performance Admin Console
    • administrative console
    • Business Space
    • Process Portal
    • Business Process Choreographer Explorer
    • Coaches
    • IBM Worklight Enterprise Edition
  2. Plan and Installation
  3. First intro process
  4. Development of UI
  5. Development with Worklight
  6. Development cycle
  7. Business Monitoring

Test C2180-276: IBM Business Process Manager Express or Standard Edition V8.0, BPM Application Development

  1. Certification objectives: http://www-03.ibm.com/certify/tests/objC2180-276.shtml
  2. Sample test: http://public.dhe.ibm.com/partnerworld/pub/certify/sam276.pdf