Monday, December 03, 2012

Untitled


Heat and cold
Cracked and old
Young again in ancient mold
Fire and water
Colder, hotter
Pulsing, tingling, Mother, Father
Silent sitting
Inward stare
Born again of earth and air
once was plain
again made clear
For one who has an ear to hear

Thursday, October 11, 2012

Trace SQL Server using Scripting and No Client for Better Performance

There is a very good article on creating server side traces in SQL Server here:
SQL Server Pedia - Server Side Traces

The essence of the whole thing is this:
Monitoring using the SQL Server Profiler creates considerable overhead, whether you run it on the server that hosts the database itself, or on a client machine.
Monitoring using a script of the sort generated in the linked article, on the other hand, creates nearly zero performance degradation (per Linchi Shea's fine article, found here: trace-profiler-test).  I have linked to Linchi's test results as well as the article.  Test Results


Wednesday, September 26, 2012

RDP Scrollbars

Speaking of RDP:
I want to set my RDP session to be less wide than my monitor screen, but every bit as high.
This is an issue, because RDP wants to add the control area (minimize, maximize, etc) and leaves you with a scrollbar.

I got rid of this with the help of the article found here: http://manojtesting.blogspot.com/2011/11/pesky-scrollbars-on-remote-desktop.html

The answer is to add the following line to your default.rdp file, which you can edit with any text editor.
smart sizing:i:1

Fantastic :-)

RDP Shortcut keys

Boy, these have made my life as a sysadmin a lot easier.  No longer need to have an RDP session in full-screen to do alt-tab etc.  Fantastic.  The ctrl-alt-minus + plus require you to use the +/- on the numeric keypad to create a local screenshot in the clipboard on the server.

A commenter also says CTRL+ALT+MINUS is equivalent to ALT+PRTSCRN, and CTRL+ALT+PLUS = PRINTSCRN.

http://msdn.microsoft.com/en-us/library/windows/desktop/aa383500(v=vs.85).aspx


Sunday, September 23, 2012

Church


Church spins me about.  It fogs things up.

It muddles my mind.

Some guy goes up in front of me, setting himself as the representative of the God I love and the Christ to which I try to make myself a disciple.  He gathers all the trappings of power and authority, ranging from an American flag to a stage and a big podium and a  cross and a bible and a business suite, and then he proclaims things with which I would vociferously disagree, based, actually, on my faith and interpretation of the teachings of Christ.

This puts me in an untenable position.  Do I resist this man who is trying to exercise this power over me, and in doing so resist what, in some powerful part of my feeble mind, is still the representative of Christ, or do I succumb to his teachings and, in doing so, abandon my own carefully studied, deeply held beliefs, that I’ve worked out with no small amount of prayer, fasting, sleepless nights, fear and trembling.

I won’t be put in that position.

My mind is my own.  My faith is my own.  I can read,  I can think critically.  I can approach almighty God, having been gifted at birth with everything I need to do so.  

Friday, August 31, 2012

You didn't build that


I know a lot of smart, hard working people who aren't rich. I know rich people who are lazy as the days is long.  Rich people aren't rich because they're smart and hard-working.  They're rich because they found a way to get rich.  Many times it's because of connections, who they know, or access that they have.  I know rich people who aren't very bright at all.  I know poor people who are smart and work really hard, but don't find money to be the most important thing in their lives, or chose a vocation that isn't well compensated by our free markets, like nursing.

I'm no Billionaire, but I've had some success in my life.  I've put in a lot of weekends and late nights and 15 hour days and gone to bed for months at a time with chest-pains to get it.  At the risk of sounding like  douche, I've got an IQ that I'd put up against about anybody's.  And yet, I'm not rich.  How does that work?

And, even for the success I've had, I have to credit much of that success to people who cared about me: great family and public schools with teachers who invested of themselves in my success and access to higher education, and great people who inspired me.  Yes, it's true - I've worked REALLY hard for whatever success I've had.  But THAT's only one factor in the equation.

"Somebody helped to create this unbelievable american system that we have that allowed you to thrive.
Somebody invested in roads and bridges.  If you've got a business, you didn't build that.  Somebody else made that happen."

I wish our normally eloquent and articulate POTUSA had said "you didn't build those roads and bridges on which your business relies".  In context, it's quite clear THAT THAT's what he meant by THAT "THAT".

http://youtu.be/YKjPI6no5ng

Tuesday, August 07, 2012

Auto Starting WebSphere Network Deployment V8 on AIX

We have very basic AIX, with no bells or whistles installed.
To create a launch script, the startmanager, startserver, and starnode scripts will generate this for you.  The command is
./startManager.sh -script -background
or
./startNode.sh -script -background
or
 ./startServer.sh -script -background

.. as appropriate...

In my case, I'm going to auto-start the deployment manager and the node agent, and then use the WAS monitoring policy to handle the individual app servers.

So, the steps are:

  1. Generate the startup scripts using the above commands.
  2. make a copy of rc.was (found in the was bin directory) for the deployment manager, and another for the node agent.  I called these rc.dm.was and rc.na.was.
    1. Edit these to point to the start_dmgr.sh and start_nodeagent.sh scripts generated above
  3. create entry in etc/Inittab for the two files created in step 2
    1. was:2:once:/usr/WebSphere/AppServer/bin/rc.dm.was >/dev/console 2>&1
    2. was:2:once:/usr/WebSphere/AppServer/bin/rc.na.was >/dev/console 2>&1
And, that should do it.  Let's see if it works :-)



 

Monday, August 06, 2012

Starting WebSphere Certification

I'm starting work on my WebSphere certification.
I'm beginning my work with the IBM WebSphere website.

WebSphere main page:
http://www-01.ibm.com/software/websphere/

WebSphere Application Server V8.0 Administration Curriculum:
http://www-01.ibm.com/software/websphere/education/curriculum/appserv/index.html


Several courses are offered.
1 - Administration on Windows
2 - Administration on Linux
3 - Technical Overview
4 - Problem Determination
5 - Transition to V8

I think that this is a good place to start focusing.  No budget to actually TAKE these courses, but this makes a fantastic outline.

The Certification page (http://www-01.ibm.com/software/websphere/education/certification/#free-was-cr) lists quite a few resources as well.

Available certifications include
"IBM Certified System Administrator - WebSphere Application Server Network Deployment V8.0"
The Recommended prerequisite section is telling:

Recommended Prerequisite Skills

(*Knowledge and skills one needs to possess before beginning to prepare for this job role certification; skills not measured on test) 
  • basic Java Enterprise Edition 6 knowledge
  • basic Web application architecture and deployments
  • network and operating system security concepts
  • network or operating system administration and problem determination skills
  • understanding of operating systems


There is an assessment test which I think will be a very, very useful tool, found here: http://www-03.ibm.com/certify/tests/sam317.shtml.  Cost is $30 / practice test.

There is also a "Training Resources" section (http://www-03.ibm.com/certify/tests/edu317.shtml) that lists several redbooks and Web Resources.

REDBOOKS:
http://www.redbooks.ibm.com/abstracts/sg247957.html?Open
http://www.redbooks.ibm.com/redpieces/abstracts/sg247971.html?Open

There are about a bazillion web resources.  Probably worth checking out.


Friday, June 08, 2012

Windows PowerShell script to find all occurrences of a string in files, all subdirectories

(get-childitem -recurse -include *.java | select-string -pattern PrepareStatement | foreach {$_.line}).Count

I developed this fairly quickly to count the occurrences of "PrepareStatement" in *.java in all sub-directories.  Worked like a charm.  Just in case it does you any good :-)

Thursday, May 17, 2012

My Experience with SQL Server 2005 Database Engine Tuning Advisor

I won't go into the how-to's for using SQL Server DBTA.  There are many out there of higher quality than I would produce, most notably:
http://msdn.microsoft.com/en-us/library/ms173494(v=sql.105).aspx

There are also several blogs with good info.

I want to relate some specifics of my recent experience.


I executed both the turning advisor and the activity monitor from a separate instance of SQL server.  My rationale for this was to distribute the workload across these two devices, thus hopefully minimizing the impact to the server that was being profiled.

Several observations:

1.       While the activity monitor will store trace data on the local server, the database tuning advisor will run its analysis and consume resources on the server that is being targeted.  This eventually lead to issues as the memory resources for the server in question were consumed.

2.       It is important to keep the workload being analyzed as small as possible.  The analysis runs for a very long time.

3.       It is important to disable the timeout value.  I had several analysis runs that ran for over an hour and a timed out, producing no recommendations.

4.       It appears possible that prior analyses which are left open continue to consume resources.  By resources, I mean resources on the server are being analyzed, not the server that is running the tuning advisor.

All of that said, the SQL server database tuning advisor is a fantastic tool.  It was able to recommend new indexes and statistics that improved our entire batch cycle time by almost 50%.


Tuesday, May 08, 2012

Problems docking and undocking HP 6910p laptop


I've had quite a number of issues with docking and undocking my JP 6910p on Windows XP, and later on Windows 7.

On Windows 7, I've found that, when it won't recognize my sound or display, I can OFTEN (not always) execute the following procedure to clear things up:
1 - lock the laptop by holding the Windows key and pressing L 
2 - switch users by holding alt and pressing W

The magic here is in the switch users - it must cause the laptop to re-detect, as it then USUALLY (again, not always) figures out where to route its display and sound.

Wednesday, April 25, 2012

Putting Away Childish Things

I've written about this before, but I again return to it tonight.

It's interesting, as we grow, I mean REALLY grow, spiritually, how the things in which we once took comfort are now out of reach.  I use the phrase "out of reach" deliberately.

I feel betrayed.  I feel hurt.  I feel devastated, to a degree and proportion that I don't know quite how to describe.

In times past, when my feelings like this arose, even to a much lesser extent than now, I reached for anger.  Rage.  I "let the beast out", meaning the animal within.  The part of me that was nothing but a mammal, cornered and injured and ready to make you bleed before I inevitably succumbed to your jaws.

Tonight, I felt a special release to return to that.  Not sure how to describe it.  It was like God saying "yeah, you know what, it's been a spectacularly rough 4 months or so.  Go for it.  We'll pick back up tomorrow."  But when I reached for that, when I started down that path, my spirit bore such strong witness against it, that I don't  couldn't get there.

Of course, this is wonderful.  But, if I'm to be completely honest, it also hurts a bit.  We have to be willing to lose that part of ourselves, and it's taken me a good, solid 20 years to accomplish this one, if, in point of fact, I can really claim I'm there.

It's like a part of my youth that is gone, a bit like when you realize that you'll never hang out at the camp ground with the guys talking about girls again, or when you realize that you're doing things to be cute but no one thinks you're cute anymore, or when you want to sit in Mom's lap but you're too big.

I suppose this is what is meant, at least in part, by putting away childish things.  There's a sort of death that happens.  It sounds crazy, but I morn my anger.  I don't need it anymore.  I don't want it anymore.  But part of me, just part of me, still wants to disappear into that blackness for just a while.

Thank you God, for clearly demonstrating to me that I'm not the man today that I have been.  I can't wait to see what the next 20 years brings...

Saturday, April 07, 2012

The first word of Christ ...

If we accept Markan Primacy, then the first words of Christ recorded in the bible are as follows:

“The time has come,” he said. “The kingdom of God has come near. Repent and believe the good news!"

What a truly, truly wonderful thought.

I have an idea.  Let's preach this:  The time has come.  The kingdom of God has come near.  Repent, and believe the good news.  :-D


Tuesday, April 03, 2012

A couple things I learned about databases today

1 - In DB2, the following pseudocode doesn't work:
define cursor
open cursor
while (not end of cursor)
   make table update
   commit;
 end-while
close cursor

The reason?  The "commit;" statement closes your cursor!  you'll have to commit after exiting your loop.

2 - In SQL Server, you can end up with a database that has no owner.  (!)
To correct this, us the sp_changedbowner system stored procedure.
example: sp_changedbowner 'sa'

A more thorough treatment of this topic can be found here.

Crazy ...

Tuesday, January 10, 2012

Bleed the Freak


It's funny, but every time in my entire career that I've faced a you-can't-get-there-from-here when writing code, it's been resolved by listening to Alice in Chains.  Tonight's song: Bleed the Freak

I honestly have no idea what to think of that.

Oh, well.  At any rate, another life saved ;-)>.  Who knew that, when writing a db2 stored procedure,  Get Diagnostics ROW_COUNT could be confused by a variable assignment within the select statement.  Now I know.

Here's the code snippet in case anyone stumbles across this and needs it.  Hopefully it's clear.  v_vTable and SWV_RowCount were previously declared, as was v_last_block.:
--    The following is absolutely terrible, but GET DIAGNOSTICS ROW_COUNT simply would not work!!! 
--    It was returning 0 no matter what, perhaps confused by the INTO clause?

SET SWV_RowCount = (select count(N_OID_LST) FROM OID_MGMT WHERE C_OID_CL_ABR = v_vTable);
--      GET DIAGNOSTICS SWV_RowCount = ROW_COUNT;   
select N_OID_LST into v_last_block FROM OID_MGMT WHERE C_OID_CL_ABR = v_vTable;

Friday, January 06, 2012

A note for those who mourn

A note for those who mourn:

My grandma, who raised me and was basically my mamma, died in 1991. When I think of her, it still does something to me that I don't quite have words to express, so much so that I have trouble writing this through the tears that her memory brings.

As the years have passed, I've come to view as something really beautiful the fact that one person can love another person so deeply, and that 20 years after her passing, she's still so real, and so present in my life as to inspire such a powerful reaction.  Missing someone a lot reminds you that you loved them a lot, and reassures you that you still do.  I hope I'm always able to enjoy that deep-in-my-bones kind of sadness as an expression of my love for her, until the day I see her again.

Time doesn't heal that hurt, but that's a good thing.  What time DOES do is alter the character of the pain, morphing it from an intense, shrill, constant, and at times overwhelming pain in places you didn't even know existed, into a deep-in-the-bones ache that appears and then subsides, and that is actually sort of beautiful, as odd as that sounds; something like Sarah Mclachlan's "glorious sadness".

I hope that hurt never heals.  I hope I'm always able to shed a few tears and, for a moment now and then, enjoy that glorious sadness as an expression of my love for my grandma, until the day I see her again.

Creating Hash Values for Strings In MSSQL, DB2 UDB for LUW, and Oracle

It will often occur that we need to search a large character string in a relational database, something like an email address, postal addres...