Op veel DB2 Universal Database for OS/390-systemen zijn toepassingen voor het bewaken van resources geïmplementeerd, waarmee systeembeheerders het gebruik van resources en de toegang van afzonderlijke gebruikers met elkaar in verband kunnen brengen. Op deze manier is het mogelijk om het gebruik van resources bij individuele gebruikers of hun afdeling in rekening te brengen. Dit wordt doorgaans aangeduid met de term chargeback accounting.
Met behulp van DB2 Connect-producten kunnen systeembeheerders controle uitoefenen op het gebruik van mainframeresources door gebruikers die toegang tot de databases hebben via DB2 Connect. Voor het versturen van accountgegevens vanuit DB2 Connect naar de DB2-databaseserver kunt u gebruikmaken van accountreeksen. Een accountreeks omvat gegevens die door het systeem worden gegenereerd en gegevens die door de gebruiker worden verstrekt. Op deze wijze kan de systeembeheerder het gebruik van resources koppelen aan de toegang van afzonderlijke gebruikers en de kosten doorberekenen.
Voor het versturen van accountreeksen wordt gebruikgemaakt van de DRDA-parameter PRDDTA. Omdat de waarde van deze parameter niet in de DRDA-architectuur is opgenomen, is het niet zeker dat accountgegevens door uw toepassingenserver als zodanig worden herkend. Momenteel wordt PRDDTA alleen ondersteund op MVS- en OS/390-systemen. De reeks wordt opgeslagen als accountrecord.
De accountreeks bestaat uit een prefix van 56 bytes die wordt gegenereerd door DB2 Connect. Dit wordt gevolgd door het suffix, een reeks van maximaal 199 bytes (voor een maximumlengte van 255 bytes) die door de gebruiker worden opgegeven.
In Tabel 3 vindt u een overzicht van de velden die door het systeem
worden gegenereerd. Deze velden worden naar rechts met spaties
opgevuld.
Tabel 3. Accountreeksvelden gegenereerd door DB2 Connect
Veldnaam | Lengte | Beschrijving |
---|---|---|
acct_str_len | 1 | Een hexadecimale waarde die gelijk is aan de lengte van de accountreeks min 1, bijvoorbeeld X'3C'. |
client_prdid | 8 | Het product-ID van de clientsoftware. Het product-ID van DB2 Universal Database Versie 7 is bijvoorbeeld SQL07010. |
client_platform | 18 | Het platform waarop de client werkt, bijvoorbeeld AIX, OS/2, DOS of Windows. |
client_appl_name | 20 | De eerste 20 tekens van de naam van de gebruikerstoepassing, bijvoorbeeld salaris. |
client_authid | 8 | Het authid van de gebruikerstoepassing, bijvoorbeeld SMITS. |
suffix_len | 1 | Een hexadecimale waarde die gelijk is aan de lengte van het door de gebruiker ingevoerde suffix. X'00' betekent dat de gebruiker geen suffix heeft ingevoerd. |
Het door de gebruiker gedefinieerde suffix heeft een van de volgende waarden:
Het suffix wordt afgekapt als het uit meer dan 199 tekens bestaat. Om te voorkomen dat er conversiefouten optreden bij het versturen van de accountreeks naar de host- of de AS/400-databaseserver, mag u alleen de tekens A t/m Z, 0 t/m 9 en _ (liggend streepje) gebruiken.
Voor het instellen van de accountreeks kunt u het beste de API-methode gebruiken. Voordat u een verbinding tot stand brengt met een database, moet de API worden opgeroepen. Als u een accountreeks binnen de toepassing wilt wijzigen (bijvoorbeeld om een andere reeks te versturen als u verbinding maakt met een andere database), moet de API opnieuw worden opgeroepen. Anders blijft de waarde actief totdat u de toepassing afsluit.
Wanneer de API sqlesact() niet wordt opgeroepen voordat de eerste verbindingsaanvraag voor de database is gedaan, wordt de omgevingsvariabele DB2ACCOUNT gelezen. Deze waarde blijft actief tot de toepassing of het achtergrondproces van de opdrachtregelinterface wordt beëindigd. Als u een nieuw suffix voor de accountreeks wilt opgeven nadat u al verbinding met de database hebt gemaakt, kunt u gebruikmaken van de API sqlesact(). U kunt ook de toepassing of het achtergrondproces van de CLP afsluiten en vervolgens opnieuw starten met DB2ACCOUNT ingesteld op de nieuwe waarde.
Wanneer er geen DB2ACCOUNT-waarde bestaat, wordt de waarde van de systeemconfiguratieparameter DFT_ACCOUNT_STR gebruikt. Deze standaardwaarde kan worden gebruikt voor databaseclients die geen accountreeks naar DB2 Connect kunnen doorsturen. Wanneer deze niet bestaat, wordt een nullreeks gebruikt.
Voorbeelden van accountreeksen zijn:
x'3C'SQL07010OS/2 cheque SMITS x'05'DEPT1 x'37'SQL07010OS/2 cheque SMITS x'00'
In het eerste voorbeeld is DEPT1 het suffix dat door de gebruiker is opgegeven. In het tweede voorbeeld is het suffix een nullreeks.