8024: All virtual circuits are currently in use

Problem:

Received "CLI2: BADLOGMECH(507): Requested logon mechanism is not available" while connecting to DBS.

OR

8024: All virtual circuits are currently in use

Cause:

The Teradata system has run out of sessions. This error is sent in response to an assign request when either the gateway capacity or the capacity of all PEs configured with the same logical host id has been reached.

Solution:

1. Check for un-even cop distribution

2. Increase session limit of DBS if there is room for expansion

3. Decrease the number of sessions used

Teradata bound by the limit of 120 sessions per LAN Parsing Engine (LAN PE) or 600 sessions per Teradata Database Gateway network connection, whichever is lower. One can usually expand the capacity of the Teradata Database Gateway by adding more PE's for use from the LAN. If the number of LAN PE's already exceeds 5 times the number of Teradata Database Gateway network connections, which is a very unlikely condition, it may be possible to use the Gateway Control Utility to globally increase that number of sessions supported by every Teradata Gateway network connection to more than the default value of 600 sessions.

Following way, we can check active session from gateway utility

# tdatcmd

PDE running version is 15.10.07.11

# gtwcontrol -d

gtwcontrol: gtwversion 15.10.07.01

gdo version: 6, created on Mon May 21 10:41:12 2018

systemname: SMP001-01

number of host groups: 1, number of gateway vprocs 1

max logfile size: 5000000

event trace cnt: 500

gtwglobal logon name: DBC

Send DBS error to client: no

TDGSS Library Version..........: 15.10.7.5

hgid: 1

assign vprocid: 22528

assigntrace: no

logons enabled: yes

session timeout in minutes: 20

connection timeout in seconds: 60

keepalive timeout in minutes: 10

max sessions per gateway: 600

iothread check frequency in minutes: 10

max io threads per type (msg/net): 50

initial io threads per type (msg/net): 25

allow gateway testing enabled: no

External Authentication: on

Append Domain Name: no

Reserved for Backdown: 0

Require Confidentiality: no

Send Connect Response in cleartext: no

Connection trace: no

Local PE Preferred Percent: 0%

TCP Socket SND/RCV Buffer Size: default (65587)

shutdown timeout in seconds: 60

vproc id: 22528 status: Online

# gtwglobal

_______

| | |

| ___ __ ____ | ____ __|__ ____

| / |/ \ ____| ____| ____| | ____|

| --- | / | / | / | | / |

| \___ | \____| \____| \____| |__ \____|

Enter gateway command or enter h for Help:

select host 1

Host 1 has been selected.

Enter gateway command or enter h for Help:

1>di ne lon

Host 1 has 159 session(s) over 1 GTW(s) and 2 PE(s)

( 157 Active / 0 Disconnected / 2 Forced)

PE Node Sessions

------- ------ --------

30719 001-01 120

30718 001-01 120

Gateway Node Sessions Logon Trace

------- ------ -------- -------- --------

22528 001-01 157 Enable Disable

Enter gateway command or enter h for Help:

1>di gtw 22528

GTW 22528 on node 001-01 has 153 sessions

Session PE Node Local? User IP Adr Status SP PP RNP

------- ----- ------ ------ ------------------------------ --------------------------------------------- --------- -- -- ---

43663852 30719 001-01 Yes QUINYX 192.165.90.46 CONNECTED N No

43649437 30718 001-01 Yes DB_COMMON 194.14.142.6 CONNECTED N No

43130183 30718 001-01 Yes DBC 192.168.149.160 CONNECTED N No

43266017 30718 001-01 Yes ITDBADMIN 192.168.149.160 CONNECTED N No

43598372 30719 001-01 Yes DB_COMMON 194.14.142.6 CONNECTED N No

……..

……..

……..

To check the how many sessions are active for a PE (IFP) for a given period of time:

select a.IFPNo(title'IFP')

,count(a.SessionNo) (title 'SESSION//COUNT')

from DBC.LogOnOff a

,DBC.LogOnOff b

where a.Event = 'Logon'

and b.Event <> 'Logon'

and a.SessionNo = b.SessionNo

and a.IFPNo = b.IFPNo

and a.LogonDate = b.LogonDate

and a.LogonTime = b.LogonTime

/* ENDING DATE & TIME */

and ( ( a.LogDate = '2018/07/05'

and a.LogTime <= 074000)

or a.LogDate < '2018/07/05')

/* BEGINNING DATE & TIME 0 = MIDNIGHT, 120000 = NOON */

and ( ( b.LogDate = '2018/07/05'

and b.LogTime >= 075000)

or b.LogDate > '2018/07/05')

group by 1;

IFPNO

30718

30719

SesionNO

112

114