Sunday, May 13, 2018

மாடி தோட்டத்துக்கு 35 சதவீத நிழல் போதும்!



கோவை தமிழ்நாடு வேளாண்மை பல்கலை, காய்கறிகள் துறை தலைவர் மற்றும் பேராசிரியர், ஆறுமுகம்: தனி வீடுகளில் இருப்போர், ஓரளவு மண், சூரிய ஒளிபடும் நிலப்பகுதி வீட்டில் இருந்தால், கண்டிப்பாக முருங்கை, பப்பாளி, எலுமிச்சை, மா போன்ற, 'பெரினியல்' மரங்களை, அதாவது, நீண்ட காலம் பயன் தரக்கூடியவற்றை வளர்க்கலாம். மூலிகைச் செடிகளான துளசி, கற்பூரவல்லி, துாதுவளை வளர்க்க எளிது.மாடித் தோட்டம், இப்போது மிகவும் பிரபலமாகி வருகிறது. கட்டடம் கட்டும்போதே மேற்கூரையில் நீர் இறங்காதபடி, தோட்டம் போட ஏதுவாக, தரையை, 'லேமினேட்' செய்யும் தொழில்நுட்பம் வந்து விட்டது. 3 - 5 ஆண்டு வரை, இதில் தண்ணீர் இறங்காது; ஒரு சதுர அடிக்கு, 6 - 7 ரூபாய் தான் செலவாகும்.கோடை வெயிலில் செடிகள் வாடாமல் இருக்க, நிழல் வலைக் கூடாரம் அமைப்பது சிறந்த வழி. இதில், 35, 50, 70 சதவீதம் நிழல் என, பல விதங்களில் கிடைக்கிறது. மொட்டை மாடி காய்கறித் தோட்டத்துக்கு, 35 சதவீத நிழல் உகந்தது.

இதன் வழியாக வரும், 'டிப்யூஸ்ட்' ஒளி, நல்ல பலனைத் தரும்.தொட்டி தவிர, பெரிய பாலித்தீன் பைகளிலும் செடிகளை வளர்க்கலாம். கடைகளில் கிடைக்கும் தேங்காய் நார் கட்டிகள் பயன்படுத்தினால், எடை இல்லாமல் லேசாக இருப்பதுடன், மண் போட்ட அதே பலனும் கிடைக்கும்.செடிகளுக்கு, உயிர் உரங்கள் எனப்படும், 'பையோ பர்டிலைசர்' போடலாம். ஆர்கானிக் உரம் தவிர, 'காம்ப்ளக்ஸ்' உரம் இடலாம். நர்சரிகளில் கிடைக்கும் மண்புழு உரமும் சிறந்தது. ரசாயன உரங்களான, யூரியா, டை அம்மோனியம் பாஸ்பேட் போடுவதாக இருந்தால், ஒரே ஒரு டீஸ்பூன் உரத்தை, நீரில் கரைத்து, 10 நாட்களுக்கு ஒருமுறை போட்டால் போதும்.மண் இருக்கும் ஒரு மூலையில் காய்கறி குப்பைகளைப் போட்டு வந்தால், ஆறு மாதத்தில் மக்கி, அருமையான இயற்கை உரம் கிடைக்கும்.வீட்டுக்குள் அலங்கார தொட்டிகளில் செடிகளை வளர்ப்பதால், மனதிற்கும் இதம்; அவை வெளியிடும் ஆக்சிஜனும் கிடைக்கும். பூச்செடிகளுக்கு நல்ல வெயில் வேண்டும் என்பதால், அவை வீட்டுக்குள் அவ்வளவாக வளராது. நிழற்பகுதியில், 'டைப்பன்பாக்கியா, அக்ளோநீமா, குளோரபைட்டம், பனை வகைகள், மணிப்ளான்ட், பில்லோடென்ட்ரான்ஸ் மரண்டா' போன்றவற்றை, வீட்டுக்குள் வைக்கலாம். அவற்றையும் வாரம் ஒருமுறை வெயிலில், 5 - 6 மணி நேரம் வைத்து எடுக்க வேண்டும்.

Monday, May 7, 2018

Queue Manager Interconnection

In this post I am going to briefly demonstrate MQ intercommunication. What I mean by intercommunication is allowing a message to be put on a local queue on a local queue manager and to have that message sent to a remote queue on a remote queue manager.
  
High level Steps create the MQ intercommunication :

Destination QMGR
1:  Create the Destination QMGR
2: Create Local queue where the message needs to be received
3: Define Listener and Start the Listener
4: Create Receiver Channel with same name as the Sender channel
5: Start the Receiver Channel

Source QMGR
1: Create the QMGR
2: Define Transmission Queue
3: Create Sender Channel
4: Create Remote Queue Definitions
5: Start the Sender Channel
=================================================================
        Detailed Steps  
==================================================================
Destination Queue Manager

1: Create a Destination Queue Manager QM02

[mqm@middlewaretech ~]$ crtmqm QM02

There are 82 days left in the trial period for this copy of WebSphere MQ.
WebSphere MQ queue manager created.
Directory '/var/mqm/qmgrs/QM02' created.
The queue manager is associated with installation 'Installation1'.
Creating or replacing default objects for queue manager 'QM02'.
Default objects statistics : 74 created. 0 replaced. 0 failed.
Completing setup.
Setup completed.

2. Start Queue Manager QM02

[mqm@middlewaretech ~]$ strmqm QM02

There are 82 days left in the trial period for this copy of WebSphere MQ.
WebSphere MQ queue manager 'QM02' starting.
The queue manager is associated with installation 'Installation1'.
5 log records accessed on queue manager 'QM02' during the log replay phase.
Log replay for queue manager 'QM02' complete.
Transaction manager state recovered for queue manager 'QM02'.
WebSphere MQ queue manager 'QM02' started using V7.5.0.2.


3:  Enter the MQSC prompt of QM02 and create Local Queue in the Dest QMGR where the message is to be received from the Source QMGR QM01

[mqm@middlewaretech ~]$ runmqsc QM02
5724-H72 (C) Copyright IBM Corp. 1994, 2011.  ALL RIGHTS RESERVED.
Starting MQSC for queue manager QM02.

 DEFINE QLOCAL(QL.A)
     1 : DEFINE QLOCAL(QL.A)
AMQ8006: WebSphere MQ queue created.
end
 2 : end
1 MQSC commands read.
No commands have a syntax error.
One valid MQSC command could not be processed.

4. Define  a listener for the QM02 which allows our sending queue manager (QM01) to connect via channel. We are going to make the listener use port 24000.

[mqm@middlewaretech ~]$ runmqsc QM02
5724-H72 (C) Copyright IBM Corp. 1994, 2011.  ALL RIGHTS RESERVED.
Starting MQSC for queue manager QM02.

DEFINE LISTENER(QM02.LISTENER) TRPTYPE(TCP) PORT(24000) IPADDR(192.168.1.12)
     1 : DEFINE LISTENER(QM02.LISTENER) TRPTYPE(TCP) PORT(24000) IPADDR(192.168.1.12)
AMQ8626: WebSphere MQ listener created.
START LISTENER(QM02.LISTENER)
     2 : START LISTENER(QM02.LISTENER)
AMQ8021: Request to start WebSphere MQ listener accepted.
DISPLAY LSSTATUS(QM02.LISTENER)
     3 : DISPLAY LSSTATUS(QM02.LISTENER)
AMQ8631: Display listener status details.
   LISTENER(QM02.LISTENER)                 STATUS(RUNNING)
   PID(4936)                               STARTDA(2016-01-10)
   STARTTI(19.12.16)                       DESCR( )
   TRPTYPE(TCP)                            CONTROL(MANUAL)
   IPADDR(::ffff:192.168.1.12)             PORT(24000)
   BACKLOG(100)             
end
     4 : end
3 MQSC commands read.
No commands have a syntax error.

 I have started Listener and status is running.
You will notice in this listener I added the ipaddr parameter this is to show that you can see what ipaddress you wish to listen on. This is key for intercommunication. Remember firewalls will need to be configures if you have them to allow communication on these ports.

5. Define the Receiver Channel CHL(QM01.QM02)

[mqm@middlewaretech ~]runmqsc QM02
5724-H72 (C) Copyright IBM Corp. 1994, 2011.  ALL RIGHTS RESERVED.
Starting MQSC for queue manager QM02.
                      
DEFINE CHL(QM01.QM02) CHLTYPE(RCVR) REPLACE TRPTYPE(TCP)
     1 : DEFINE CHL(QM01.QM02) CHLTYPE(RCVR) REPLACE TRPTYPE(TCP)
AMQ8014: WebSphere MQ channel created.
end
     2 : end
1 MQSC commands read.
No commands have a syntax error.
One valid MQSC command could not be processed.


##################################################################
Source Queue Manager  

##################################################################
1: Create the source queue manager QM01 and start it

[mqm@middlewaretech ~]$ crtmqm QM01
There are 82 days left in the trial period for this copy of WebSphere MQ.
WebSphere MQ queue manager created.
Directory '/var/mqm/qmgrs/QM01' created.
The queue manager is associated with installation 'Installation1'.
Creating or replacing default objects for queue manager 'QM01'.
Default objects statistics : 74 created. 0 replaced. 0 failed.
Completing setup.
Setup completed.

2. Start Queue Manager QM01

[mqm@middlewaretech ~]$ strmqm QM01
There are 82 days left in the trial period for this copy of WebSphere MQ.
WebSphere MQ queue manager 'QM01' starting.
The queue manager is associated with installation 'Installation1'.
5 log records accessed on queue manager 'QM01' during the log replay phase.
Log replay for queue manager 'QM01' complete.
Transaction manager state recovered for queue manager 'QM01'.
WebSphere MQ queue manager 'QM01' started using V7.5.0.2.

3. Create the Transmission Queue : QM02.XMITQ and Define the Remote Queue Definitions with Remote Queue Name and Remote QMGR Name

we need to do now is create a transmission queue on QM01. We require a transmission queue to be able to talk to a channel object. We use a channel to allow QM01 to talk to QM02. We will also need to create a remote queue definition which will represent our remote queue QL.A on QM02 which we want to send messages to.


[mqm@middlewaretech ~]$ runmqsc QM01
5724-H72 (C) Copyright IBM Corp. 1994, 2011.  ALL RIGHTS RESERVED.
Starting MQSC for queue manager QM01.


DEFINE QLOCAL(QM02.XMITQ) REPLACE USAGE(XMITQ)
     1 : DEFINE QLOCAL(QM02.XMITQ) REPLACE USAGE(XMITQ)
AMQ8006: WebSphere MQ queue created.

DEFINE QREMOTE(QRMT02) RNAME(QL.A) RQMNAME(QM02) XMITQ(QC02.XMITQ)
     2 : DEFINE QREMOTE(QRMT02) RNAME(QL.A) RQMNAME(QM02) XMITQ(QC02.XMITQ)
AMQ8006: WebSphere MQ queue created.

end
     3 : end
2 MQSC commands read.
No commands have a syntax error.
All valid MQSC commands were processed.

  4. Create the Sender Channel QM01.QM02  with these details

a)  CHLTYPE and TRPTYPE ( as we are using TCP protocol for connection )
b) CONNAME ( Use the Ip address of the Destination QMGR and the port of the Dest Listener)
c) XMITQ ( Use the Transmission Queue for the senders channel )

NOTE : The Sender Channel Name created here should be same as the Receive Channel created for the Destination QMGR QM02

[mqm@middlewaretech ~]$ runmqsc QM01
5724-H72 (C) Copyright IBM Corp. 1994, 2011.  ALL RIGHTS RESERVED.
Starting MQSC for queue manager QM01.
  
DEFINE CHANNEL(QM01.QM02) CHLTYPE(SDR) REPLACE TRPTYPE(TCP) CONNAME('192.168.1.12(24000)') XMITQ(QM02.XMITQ)
     1 : DEFINE CHANNEL(QM01.QM02) CHLTYPE(SDR) REPLACE TRPTYPE(TCP) CONNAME('192.168.1.12(24000)') XMITQ(QM02.XMITQ)
AMQ8014: WebSphere MQ channel created.

START CHANNEL(QM01.QM02)
     2 : START CHANNEL(QM01.QM02)
AMQ8018: Start WebSphere MQ channel accepted.
display chstatus(QM01.QM02)
     3 : display chstatus(QM01.QM02)
AMQ8417: Display Channel Status details.
   CHANNEL(QM01.QM02)                      CHLTYPE(SDR)
   CONNAME(192.168.1.12(24000))            CURRENT
   RQMNAME(QM02)                           STATUS(RUNNING)
   SUBSTATE(MQGET)                         XMITQ(QM02.XMITQ)

 display chstatus(QM01.QM02)

end
     4 : end
3 MQSC commands read.
No commands have a syntax error.
All valid MQSC commands were processed.
 ==================================================================
 Testing

 ===================================================================

1. Ensure that the listeners is started and running on the Dest Qmgr Server QM02

[mqm@middlewaretech bin]$ runmqsc QM02
5724-H72 (C) Copyright IBM Corp. 1994, 2011.  ALL RIGHTS RESERVED.
Starting MQSC for queue manager QM02.


DISPLAY LSSTATUS (QM02.LISTENER)
     1 : DISPLAY LSSTATUS (QM02.LISTENER)
AMQ8631: Display listener status details.
   LISTENER(QM02.LISTENER)                 STATUS(RUNNING)
   PID(5539)                               STARTDA(2016-01-10)
   STARTTI(19.21.07)                       DESCR( )
   TRPTYPE(TCP)                            CONTROL(MANUAL)
   IPADDR(::ffff:192.168.1.12)             PORT(24000)
   BACKLOG(100)                         
end
     2 : end
One MQSC command read.
No commands have a syntax error.
All valid MQSC commands were processed.
[mqm@middlewaretech bin]$ 

2. Ensure the Receiver channel is started on the Destination Qmgr Server QM02

[mqm@middlewaretech bin]$ runmqsc QM02
5724-H72 (C) Copyright IBM Corp. 1994, 2011.  ALL RIGHTS RESERVED.
Starting MQSC for queue manager QM02.

DISPLAY CHSTATUS(QM01.QM02)
     1 : DISPLAY CHSTATUS(QM01.QM02)
AMQ8417: Display Channel Status details.
   CHANNEL(QM01.QM02)                      CHLTYPE(RCVR)
   CONNAME(192.168.1.12)                   CURRENT
   RQMNAME(QM01)                           STATUS(RUNNING)
   SUBSTATE(RECEIVE)                    
end
     2 : end
One MQSC command read.
No commands have a syntax error.
All valid MQSC commands were processed.
[mqm@middlewaretech bin]$ 


3. Ensure that the Sender Channel is started and running on the Source Qmgr Server QM01

 [mqm@middlewaretech bin]$ runmqsc QM01
5724-H72 (C) Copyright IBM Corp. 1994, 2011.  ALL RIGHTS RESERVED.
Starting MQSC for queue manager QM01.

DISPLAY CHSTATUS(QM01.QM02)
     1 : DISPLAY CHSTATUS(QM01.QM02)
AMQ8417: Display Channel Status details.
   CHANNEL(QM01.QM02)                      CHLTYPE(SDR)
   CONNAME(192.168.1.12(24000))            CURRENT
   RQMNAME(QM02)                           STATUS(RUNNING)
   SUBSTATE(MQGET)                         XMITQ(QM02.XMITQ)
end
     2 : end
One MQSC command read.
No commands have a syntax error.
All valid MQSC commands were processed.
[mqm@middlewaretech bin]$ 


4.What we want to do now is put a message on the remote queue definition QRMT02  in  in the source Qmgr QM01 . and see if it arrives on the remote queue manager.

 If the configurations are proper then this message should be received by the Destination Queue QL.A on Qmgr QM02

[mqm@middlewaretech bin]$ pwd
/opt/mqm/samp/bin

[mqm@middlewaretech bin]$ ./amqsput QRMT02 QM01
Sample AMQSPUT0 start
target queue is QRMT02
This is test message

Sample AMQSPUT0 end
[mqm@middlewaretech bin]$ 
[mqm@middlewaretech bin]$ ./amqsgbr QL.A QM02
Sample AMQSGBR0 (browse) start
QM02
Messages for QL.A                                            
1 <This is test message>
no more messages
Sample AMQSGBR0 (browse) end

So the Message would flow internally from



Monday, March 5, 2018

This Script will take the list of URLs from a text tile( in this case from D:\URLList.txt), and results output with URL, StatusCode, Description. Response Length and the time taken fields in a HTML format report  

 - You can run this script in a schedule task to run at regular intervals for continuous monitoring

############################################################################## 
## 
## Website Availability Monitoring 
## Created for XXX account
## Date : xx xx xxxx
## Version : 1.0 
## Email: abcd@xyz.com 
############################################################################## 
 
 
## The URI list to test 
$URLListFile = "C:\Temp\URLList.txt"  
$URLList = Get-Content $URLListFile -ErrorAction SilentlyContinue 
  $Result = @() 
   
   
  Foreach($Uri in $URLList) { 
  $time = try{ 
  $request = $null 
   ## Request the URI, and measure how long the response took. 
  $result1 = Measure-Command { $request = Invoke-WebRequest -Uri $uri } 
  $result1.TotalMilliseconds 
  }  
  catch 
  { 
   <# If the request generated an exception (i.e.: 500 server 
   error or 404 not found), we can pull the status code from the 
   Exception.Response property #> 
   $request = $_.Exception.Response 
   $time = -1 
  }   
  $result += [PSCustomObject] @{ 
  Time = Get-Date; 
  Uri = $uri; 
  StatusCode = [int] $request.StatusCode; 
  StatusDescription = $request.StatusDescription; 
  ResponseLength = $request.RawContentLength; 
  TimeTaken =  $time;  
  } 
 
} 
    #Prepare email body in HTML format 
if($result -ne $null) 
{ 
    $Outputreport = "<HTML><TITLE>Website Availability Report</TITLE><BODY background-color:peachpuff><font color =""#99000"" face=""Microsoft Tai le""><H2> Website Availability Report </H2></font><Table border=1 cellpadding=0 cellspacing=0><TR bgcolor=gray align=center><TD><B>URL</B></TD><TD><B>StatusCode</B></TD><TD><B>StatusDescription</B></TD><TD><B>ResponseLength</B></TD><TD><B>TimeTaken</B></TD</TR>" 
    Foreach($Entry in $Result) 
    { 
        if($Entry.StatusCode -ne "200") 
        { 
            $Outputreport +"<TR bgcolor=red>" 
        } 
        else 
        { 
            $Outputreport +"<TR>" 
        } 
        $Outputreport +"<TD>$($Entry.uri)</TD><TD align=center>$($Entry.StatusCode)</TD><TD align=center>$($Entry.StatusDescription)</TD><TD align=center>$($Entry.ResponseLength)</TD><TD align=center>$($Entry.timetaken)</TD></TR>" 
    } 
    $Outputreport +"</Table></BODY></HTML>" 
} 
 
$Outputreport | out-file C:\Temp\Test.htm 
Invoke-Expression C:\Temp\Test.htm  

Monday, February 12, 2018

மீயுட்சுவல் பண்டுகள்

மீயுட்சுவல் பண்டுகள் என்பவை பங்கு வர்த்தகத்தில் இருந்து சற்று வேறுபட்டது. பணத்தை பல பேரிடம் பெற்று அதை மார்கெட்டில் முதலீடு செய்வார்கள்.அதில் வரும் லாபம் முதலீடு செய்த அனைவருக்கும் சமமாக பிரித்துக்கொடுக்கப்படும். சந்தை உயர்வு தாழ்விற்கு ஏற்ப்ப நீங்கள் கொடுத்த பணம் ஏறவோ இறங்கவோ செய்யும். சுருக்கமாக சொல்லுவதென்றால் நேரடியாக நீங்கள் பங்கு சந்தையில் இறங்காமல் மீயுட்சுவல் பண்ட் நிறுவனத்திடம் உங்கள் பணத்தை ஒப்படைத்து அவர்களை நிறுவனம் செய்யும்படி கூறுகின்றீர்கள் என அர்த்தம். இதனால் உங்களுக்கு ரிஸ்க் குறையும். தற்போது நிறைய வகையான மீயுட்சுவல் பண்டுகள் வந்துவிட்டன.

உதாரணமாக ரூபாய் 5000க்கு SBI ONE India Fund மீயுட்சுவல் பண்டினை வாங்கினால்.அப்போதைய அந்த மீயுட்சுவல் பண்டின் நிகர சொத்து மதிப்பு( NAV ) ரூபாய் 20 எனில் உங்களுக்கு 250( 5000/20 ) அளவு என பண்டுகள் வழங்கப்படும். NAV ன் மதிப்பு 20 ரூபாயில் இருந்து உயர உயர உங்கள் பணமும் உயரும். ஒரு ஆண்டுகள் கழித்து NAV மதிப்பு 40 ரூபாய் எனில் 250x40=10000 ரூபாய் உங்களிடம்.

கவனிக்க NAV மதிப்பு 20 ரூபாய்க்கும் கீழ் சென்றுவிட்டால் நீங்கள் போட்ட பணம் குறைந்து கொண்டே செல்லும். NAV மதிப்பு பங்கு சந்தையை பொருத்து உயரலாம் அல்லது குறையலாம்.

ஆக மீயுட்சுவல் பண்ட் நிறுவனம் திறமையானதாக இருக்கும் பட்சத்தில் மற்றும் சந்தை உயர்வாக இருக்கும் பட்சத்தில் உங்கள் முதலீடுக்கு உத்திரவாதம் கண்டிப்பாக உண்டு.

மீயுட்சுவல் பண்டில் இரண்டு வகை உண்டு. அவை Open ended, Closed ended.
Open-end Fund
இந்த வகையில் நீங்கள் போட்ட பணத்தை எப்போது நீங்கள் விரும்புகின்றீர்களோ அப்போது எடுக்கலாம்.
Close-end Fund
இந்த வகையில் அவர்கள் கூறிய காலத்திற்கு( 3 ஆண்டுகள் என்க ) இடையே உங்கள் பணத்தை திரும்ப எடுக்க முடியாது.

லாபம் எப்படி பகிர்தளிக்கப்படுகின்றது. இதில் இரு வகை உள்ளது

DIVIDEND OPTION
இதில் கிடைக்கும் லாபம் பணம் போட்ட அனைவருக்கும் சமமாக பகிர்ந்தளிக்கப்படும். நீங்கள் எவ்வளவு அளவு பண்ட் வைத்திருக்கின்றீர்களோ அதுக்கேற்றார் போல் பகிர்ந்தளிக்கப்படும். உதாரணமாக 250x4(ஒரு பண்டுக்கு 4 ரூபாய் லாபம் என்க. ) = 1000 ரூபாய் லாபமாக கொடுத்துவிடுவார்கள். காசோலையாகவோ அல்லது உங்கள் பேங்க் கணக்கிலோ வரவு வைக்கப்படும். நீங்கள் போட்ட 5000 தொடர்ந்து முதலீடு செய்யப்படும்( நீங்களாக பண்ட்டை விற்காதவரை )

GROWTH OPTION
இந்த முறையில் கிடைத்த லாபம் மீண்டும் சந்தையில் முதலீடு செய்யப்படும். அதாவது உங்களிடம் உள்ள 250 பண்ட் + 1000 ரூபாய் லாபம் இப்படி மாற்றப்படும்,

1000/40(NAV) = 25 பண்ட் ஏற்கனவே உள்ள பண்ட் 250 + 25 பண்ட் = 275 பண்ட்ஸ். உங்களது லாபம் தற்போது பண்ட்டாக மாற்றப்பட்டு மீண்டும் சந்தையில் முதலீடு செய்யப்படும்.


ரிஸ்க் இல்லாத முதலீடு

ரிஸ்க் இல்லாத முதலீடு இல்லை என்றாலும், கடன் சார்ந்த மியூச்சுவல் ஃபண்ட் திட்டங்கள் ரிஸ்க் குறைவானவை என்பதோடு மிதமான வருமானம் தருபவை. இந்த வகை ஃபண்டுக்கு நல்லதொரு எடுத்துக்காட்டு ஜே.எம். ஜி - செக்யூரிட்டி ரெகுலர் . இந்த ஃபண்டின் மூலம் திரட்டப்படும் நிதி அரசாங்க கடன் பத்திரங்களில் முதலீடு செய்யப்படுவதால் ரிஸ்க் குறைவாக இருக்கும். இந்த ஃபண்ட் கடந்த ஐந்து ஆண்டுகளில் ஆண்டுக்கு சராசரியாக 9.40% வருமானத்தையும், ஆரம்பம் முதல் 10.24% வருமானத்தையும் தந்துள்ளது

Sunday, February 11, 2018

Websphere Connection Pool monitoring and Alerting System ( Connection Pool runtime information)

Many of the infrastructure monitoring tools brings their own JMX monitoring now a days to monitor all the JVM components including connection pool (DataSource) JMS etc.
But, If in case you wanted to set up your own alerting system (Email Notification etc.) for Connection pool.  You can use this  wsadmin script.

Design

-It will find all the running servers registered with DMGR (cell) and take a list of running connection pools targeted on those servers.
-It will automatically set 80 percent of the connection max_limit as a threshold.
-It will print a alert message, in case of possible connection pool overflow. When the current connection limit reaches the threshold.
  
If you do not want any alerting system and want to see the connection pool usage manually in case of requirement (or) on demand basis. You can just use this jython script with wsadmin. In case if you wanted to setup alerting system refer the additional notes for some ideas of designing the alerting system.

Additional notes

1    You can run this script in a frequent interval like 2 minutes (or) 10 minutes using the external shell script scheduled in crontab and get the alert generated. ( let me know in comment section if you need help) 
2    If you have Autosys, you can rather schedule it with JIL and run this in a periodic interval.
       After scheduling it to run on certain interval you can use any log parse monitoring tools like Tivoli and get alerts/tickets upon your infrastructure set up.

Version compatibility
was6.1 and above ( for was 6 there is little bit modification required, write a comment if you need)
wsadmin script


wsadmin script

import re
Running_JVMS
=AdminControl.queryNames("*:type=Server,*").split(java.lang.System.getProperty("line.separator"))
ignorelist
=['nodeagent','dmgr']
TMPFILE
='/tmp/PoolContents.tmp'
global current_conn
for JVM in Running_JVMS:
        ServerName
=AdminControl.invoke(JVM ,"getName()")
       
if ServerName not in ignorelist:
                DS
=AdminControl.queryNames('*:process='+ServerName+',type=DataSource,*').split(java.lang.System.getProperty("line.separator"))
               
for entry in DS:
                       
if AdminControl.invoke(entry, "getStatus()") != '99':
                               
print "============================================"
                               
print "ServerName    :", ServerName
                                DSN
=AdminControl.invoke(entry, "getName()")
                               
print "DataSourceName:", DSN
                                JNDN
=AdminControl.invoke(entry, "getJndiName()")
                               
print "JNDIName      :", JNDN
                                MaxConn
=AdminControl.invoke(entry, "getMaxConnections()")
                               
print "MaxConnections:", MaxConn
                               
print "StatusCode    :", AdminControl.invoke(entry, "getStatus()")
                               
##########################
                                fout
=open(TMPFILE, 'w')
                                data
=AdminControl.invoke(entry, "showPoolContents")
                                fout.write(data)
                                fout.close()
                                percent
=0.8
                                threshold
=int(MaxConn)*float(percent)
                               
print "Threshold     :", threshold
                                
try:
                                        fin
=open(TMPFILE)
                                        filedata
=fin.readlines()
                                       
for line in filedata:
                                               
#match 1= re.search(r':sd', line)
                                               
#matchstr=re.search(r'Total number of connection in shared pool', line)
                                                matchstr
=re.search('(.....s......s..s..........s..s......s....):(sd)', line)
                                               
if matchstr:
                                                       
#current_conn=match.group().split(":")[1].strip(" ")
                                                        current_conn
=matchstr.group(2)
                                                       
if int(current_conn) >= int(threshold):
                                                                ALERT
='YES'
                                                                ALERTSTRING
='Connection Pool %r reached 80 percent of its max_limit on Server %r'%(DSN,ServerName)
                                                               
print ALERTSTRING
                                                       
else:
                                                                ALERT
='NO'
                                                       
break

                                               
else:
                                                        current_conn
=0


                                        fin.close()
                                       
print "Currently used:", current_conn
                                       
print "============================================"
                               
except IOError:
                                       
print  'Something went Wrong.'


How to run

Save the above code with “.py” extension and run it with wsadmin.
In example
wsadmin.sh -lang jython -username <username> -password <password> -lang jython -f <saved py file name>