Quote:
Originally Posted by thepoetwarrior
I've tested perl mysql DBI connect and disconnect in various ways and it seems that disconnect doesn't do anything.
$dbh->disconnect;
$dbh->disconnect();
It still has a value if I pass them to quest::gmsay()
putting a 'my' in front of it makes it disappear after the sub is done, which was tested with if(!$dbh), otherwise becomes global or something.
Is disconnect required? Does it even do anything?
If we don't disconnect, would we eventually have hundreds and thousands of active connections?
Hope this make sense, and someone can answer.
|
These are valid concerns, however I don't think you have too much to worry about. Define your connection variable globally and you'll be fine. You're going to have tons of connections regardless if you use DBI regularly as part of your normal player tools. Typically you're going to see at least one DBI auth per zone process. See mine below, all of the roots are the zone processes, dbiconnect is obviouslly DBI.
I define all of my connect statements like this (For reference)
Code:
$connect = plugin::LoadMysql();
And I use a plugin that is referenced here:
http://www.eqemulator.org/forums/showthread.php?t=37649
Code:
mysql> show processlist;
+---------+------------+-----------------+--------------+---------+-------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+---------+------------+-----------------+--------------+---------+-------+-------+------------------+
| 1365401 | root | localhost:16413 | eqemu2 | Sleep | 1 | | NULL |
| 2519344 | root | localhost:32415 | eqemu2 | Sleep | 8 | | NULL |
| 2519405 | root | localhost:32480 | eqemu2 | Sleep | 3 | | NULL |
| 2519406 | root | localhost:32481 | eqemu2 | Sleep | 4 | | NULL |
| 2519407 | root | localhost:32482 | eqemu2 | Sleep | 0 | | NULL |
| 2519408 | root | localhost:32483 | eqemu2 | Sleep | 7 | | NULL |
| 2519409 | root | localhost:32484 | eqemu2 | Sleep | 5 | | NULL |
| 2519410 | root | localhost:32485 | eqemu2 | Sleep | 4 | | NULL |
| 2519411 | root | localhost:32486 | eqemu2 | Sleep | 4 | | NULL |
| 2519412 | root | localhost:32487 | eqemu2 | Sleep | 4 | | NULL |
| 2519413 | root | localhost:32488 | eqemu2 | Sleep | 5 | | NULL |
| 2519414 | root | localhost:32489 | eqemu2 | Sleep | 1 | | NULL |
| 2519415 | root | localhost:32490 | eqemu2 | Sleep | 7 | | NULL |
| 2519416 | root | localhost:32491 | eqemu2 | Sleep | 2 | | NULL |
| 2519417 | root | localhost:32492 | eqemu2 | Sleep | 4 | | NULL |
| 2519418 | root | localhost:32493 | eqemu2 | Sleep | 3 | | NULL |
| 2519419 | root | localhost:32494 | eqemu2 | Sleep | 5 | | NULL |
| 2519420 | root | localhost:32495 | eqemu2 | Sleep | 4 | | NULL |
| 2519421 | root | localhost:32496 | eqemu2 | Sleep | 4 | | NULL |
| 2519422 | root | localhost:32497 | eqemu2 | Sleep | 2 | | NULL |
| 2519423 | root | localhost:32498 | eqemu2 | Sleep | 4 | | NULL |
| 2519424 | root | localhost:32499 | eqemu2 | Sleep | 4 | | NULL |
| 2519425 | root | localhost:32500 | eqemu2 | Sleep | 1 | | NULL |
| 2519426 | root | localhost:32501 | eqemu2 | Sleep | 4 | | NULL |
| 2519427 | root | localhost:32502 | eqemu2 | Sleep | 4 | | NULL |
| 2519428 | root | localhost:32503 | eqemu2 | Sleep | 4 | | NULL |
| 2519429 | root | localhost:32504 | eqemu2 | Sleep | 5 | | NULL |
| 2519430 | root | localhost:32505 | eqemu2 | Sleep | 5 | | NULL |
| 2519431 | root | localhost:32506 | eqemu2 | Sleep | 4 | | NULL |
| 2519432 | root | localhost:32507 | eqemu2 | Sleep | 5 | | NULL |
| 2519433 | root | localhost:32508 | eqemu2 | Sleep | 7 | | NULL |
| 2519434 | root | localhost:32509 | eqemu2 | Sleep | 4 | | NULL |
| 2519435 | root | localhost:32510 | eqemu2 | Sleep | 5 | | NULL |
| 2519436 | root | localhost:32511 | eqemu2 | Sleep | 5 | | NULL |
| 2519437 | root | localhost:32512 | eqemu2 | Sleep | 5 | | NULL |
| 2519438 | root | localhost:32513 | eqemu2 | Sleep | 4 | | NULL |
| 2519439 | root | localhost:32514 | eqemu2 | Sleep | 4 | | NULL |
| 2519440 | root | localhost:32515 | eqemu2 | Sleep | 3 | | NULL |
| 2519441 | root | localhost:32516 | eqemu2 | Sleep | 5 | | NULL |
| 2519442 | root | localhost:32517 | eqemu2 | Sleep | 1 | | NULL |
| 2519443 | root | localhost:32518 | eqemu2 | Sleep | 4 | | NULL |
| 2519444 | root | localhost:32519 | eqemu2 | Sleep | 5 | | NULL |
| 2872975 | dbiconnect | localhost:63610 | eqemu2 | Sleep | 19228 | | NULL |
| 2873477 | dbiconnect | localhost:64166 | eqemu2 | Sleep | 17067 | | NULL |
| 2873486 | dbiconnect | localhost:64175 | eqemu2 | Sleep | 17032 | | NULL |
| 2874877 | dbiconnect | localhost:1225 | eqemu2 | Sleep | 10567 | | NULL |
| 2874878 | dbiconnect | localhost:1226 | eqemu2 | Sleep | 10567 | | NULL |
| 2874879 | dbiconnect | localhost:1227 | eqemu2 | Sleep | 10567 | | NULL |
| 2876350 | dbiconnect | localhost:2969 | eqemu2 | Sleep | 3173 | | NULL |
| 2876351 | dbiconnect | localhost:2971 | eqemu2 | Sleep | 3150 | | NULL |
| 2876352 | dbiconnect | localhost:2972 | eqemu2 | Sleep | 3150 | | NULL |
| 2876353 | dbiconnect | localhost:2973 | eqemu2 | Sleep | 3150 | | NULL |
| 2876674 | dbiconnect | localhost:3379 | eqemu2 | Sleep | 707 | | NULL |
| 2876681 | dbiconnect | localhost:3388 | achievements | Sleep | 639 | | NULL |
| 2876699 | dbiconnect | localhost:3423 | eqemu2 | Sleep | 278 | | NULL |
| 2876700 | dbiconnect | localhost:3424 | eqemu2 | Sleep | 258 | | NULL |
| 2876701 | dbiconnect | localhost:3425 | eqemu2 | Sleep | 258 | | NULL |
| 2876702 | dbiconnect | localhost:3426 | eqemu2 | Sleep | 258 | | NULL |
| 2876708 | dbiconnect | localhost:3437 | eqemu2 | Sleep | 225 | | NULL |
| 2876711 | dbiconnect | localhost:3442 | achievements | Sleep | 156 | | NULL |
| 2876712 | dbiconnect | localhost:3446 | eqemu2 | Sleep | 88 | | NULL |
| 2876713 | dbiconnect | localhost:3447 | eqemu2 | Sleep | 88 | | NULL |
| 2876714 | dbiconnect | localhost:3448 | eqemu2 | Sleep | 88 | | NULL |
| 2876716 | root | localhost:3460 | eqemu2 | Query | 0 | init | show processlist |
+---------+------------+-----------------+--------------+---------+-------+-------+------------------+
64 rows in set
Hopefully that helps