Archive for the ‘Uncategorized’ Category

There are a lot of discussions on various forums/threads regarding the Content Server High Availability Environment. But I have not come across any documentation providing the precise steps to implement it. This is an attempt to list the steps that I have been using for the implementation. It’s basically an integration of bits and pieces from various sources combined along with my experience in order to put a clear picture. These steps may not be exactly as suggested and supported by EMC.
The procedure listed below is specific to the Content Server Linux Oracle 6.5 SP2 version.


  • As it’s a HA environment, the content files should be present in a File Store that is shared across the Content Servers.
  • The Installation Owner and the Installation Path should be same on each Content Server.
  • Availability of a Database Server and its connectivity through each Content Server Host using Oracle Client.
  • Update the /etc/hosts file of the Content Server Hosts so that they can resolve their IP addresses and hostnames.

Once the above prerequisites are satisfied, the below steps can be used to establish the HA environment.

  • Install the Primary Content Server as per the standard procedure mentioned in Installation Guide.
  • Install the docbroker on the Secondary CS host.
  • Create a Secondary Server Config object using Documentum Administrator.
  • Copy server.ini, aek.key, dbpasswd.txt, dm_start_docbase and dm_shutdown_docbase from Primary CS Host to Secondary CS Host.
  • Update the server.ini on both the Hosts so that the docbrokers project to each other.
    server.ini on the Primary CS:

    host = <primary docbroker>
    port = 1489
    host = <secondary docbroker>
    port = 1489

    server.ini on the Secondary CS:

    host = <secondary docbroker>
    port = 1489
    host = <primary docbroker>
    port = 1489
  • Update the dm_shutdown_docbase as follows: 
      The line preceding to “shutdown,c,T,T” should be updated as follows:

    • Original:
      ./iapi <docbase> -U$DM_DMADMIN_USER -P -e << EOF 
    • Updated:
      ./iapi <docbase>.<secondary server config object name> -U$DM_DMADMIN_USER  -P -e << EOF
  • Update the dfc.properties of the Web Application as well as both the Content Server Hosts so that they point to both the docbrokers.
  • Create an ACS Config object using the below command:
      dmbasic -f dm_acs_install.ebs -e Install -- <docbase name> <installation owner> <password> <new acs config name> <secondary server config name> <JMS Port> <JMS protocol> <output log location>
  • Update the acs.properties accordingly.
  • Once the above steps are complete, shutdown the Primary CS and test the Secondary CS for expected functionality. There may be minor issues which may need few basic fixes. Such fixes include creation of sysadmin directory at $DOCUMENTUM/dba/logs/<repository id>/ in order to fix issues relating to jobs running on Secondary CS.

Start the Primary CS and now both the CS should be in HA.

Read Full Post »

I came up with this junk when I was trying to clean my repository by finding a DQL that I could use to delete more that 150,000 junk user objects from my repository. Ignore that statement as it is again a junk. What I came up is not very new. It’s just the weirdness in the behavior of the DQLs. Is this weirdness only with the repeating attributes? I would like the DQLs to do much of the talking as I feel they can explain their pain much better. So here it goes:

A1)SELECT COUNT(DISTINCT user_name) FROM dm_user >> 168241

A2)SELECT COUNT(DISTINCT users_names) FROM dm_group >> 2916

A3)SELECT COUNT(DISTINCT user_name) FROM dm_user
WHERE user_name NOT IN
(SELECT DISTINCT users_names from dm_group) >> 0

Isn’t that weird?

B1)SELECT COUNT(DISTINCT user_name) FROM dm_user, dm_group
WHERE ANY dm_group.users_names = dm_user.user_name >> 2915

A2 VS B1: again weird!

C1)SELECT COUNT(DISTINCT user_name) FROM dm_user
WHERE user_name NOT IN
(SELECT DISTINCT user_name FROM dm_user, dm_group
WHERE ANY dm_group.users_names = dm_user.user_name) >> 165326

(A2, A3) VS (B1, C1): any explanation?
But that’s a relief indeed. That’s the result I needed. A1 – B1 = C1. Under the current circumstances, that’s encouraging enough to get into some more meddling.

D1)SELECT COUNT(users_names) FROM dm_group
WHERE ANY users_names NOT IN
(SELECT user_name FROM dm_user) >> 5

What the hell!!!

D2)SELECT users_names FROM dm_group
WHERE ANY users_names NOT IN
(SELECT user_name FROM dm_user)
>> TestUser1 test3 test2 orts test1x


WHERE user_name IN
(SELECT users_names FROM dm_group
WHERE ANY users_names NOT IN
(SELECT user_name FROM dm_user))>> 4

This is insane. Isn’t D3 a contradiction in itself? Can I challenge EMC to explain that? Can someone come to my rescue?

D4)SELECT user_name FROM dm_user
WHERE user_name IN
(SELECT users_names FROM dm_group
WHERE ANY users_names NOT IN
(SELECT user_name FROM dm_user))
>> TestUser1 test3 test2 orts

Here is something that helps; but it doesn’t explain the insanity though.

ConsistencyChecker Report:

Checking for users belonging to groups not in dm_user
WARNING CC-0002: User ‘test1x’ is referenced in dm_group with id ‘12000d808004a500’ but does not have a valid dm_user object
Rows Returned: 1

Weirdness No. 1:     (A1, A2, A3)
Weirdness No. 2:     A2 VS B1: Explained by the ConsistencyChecker Report.
Weirdness No. 3:     (A2, A3) VS (B1, C1)
Weirdness No. 4:     D3: The Contradiction in itself.

I could get an explanation only for Weirdness No. 2 which I guess is not a weirdness at all. I hope someone reading this post would try explaining the other three. 1 & 2 I guess are contributed by repeating attributes but remains unexplained anyway. 4, the D3 is an absolute marvel. Is there a bug in the way DQL works?
C1 is the undisputed winner as it provides the expected result.

Read Full Post »

“Which are the repeating attribures in my_document?” That question was put by Gaurav as he needed to validate them with Captiva. He was finding it too tedious to validate the attributes by checking the definition of each type in the repository. He was interested in a single DQL query which could make his job easy.

My first reaction to his query was: “You are expecting too much!”. Life can’t be that easy. You can not escape from every complexity. But we can indeed try to make them simple. Can’t we?
So I looked into dmi_dd_type_info, dmi_dd_attr_info and finally in dm_type I found the attributes that I could use. After a few iterations I came up with the following DQL Query:

SELECT name, attr_name, attr_repeating
FROM dm_type
WHERE name = 'my_document' AND attr_repeating = 1

This query is again a good example of the DQL Hint ROW_BASED. With this Hint we get only those results where attr_repeating = 1. That statement may have sounded dumb had attr_repeating been a single valued attribute. But it is repeating and there are some weirdness with the result if we are checking for the value of a repeating attribute in the WHERE clause without using that hint.

SELECT name, attr_name, attr_repeating
FROM dm_type
WHERE name = 'my_document' AND ANY attr_repeating = 1

The result of the first query brought a smile to Gaurav’s face; but his expectations had increased. He was interested in only those repeating attributes that were not inherited from the parent type. We found a simple way to do that.

SELECT name, attr_name, attr_repeating
FROM dm_type
WHERE name = 'my_document' AND attr_repeating = 1 AND attr_name
NOT IN (SELECT attr_name FROM dm_type WHERE name = 'dm_document')

We came up with one more modification and our final query looked like:

SELECT name, attr_name, attr_repeating
FROM dm_type
WHERE name = 'my_document' AND attr_repeating = 1 AND attr_name
NOT IN (SELECT attr_name
	FROM dm_type
	WHERE name =
		(SELECT super_name
		FROM dm_type
		WHERE name = 'my_document')

Now that has brought a smile to my face and I hope that Gaurav doesn’t come up with more expectations.

Read Full Post »

puff! puff! puff!

Now I’m a fella with a heart of gold,
The ways of a gentleman,
I’ve been told.
The kind of a guy that wouldn’t even harm a flea
But if me and a certain character met
That guy that invented that cigarette
I’d murder that son of a gun in the first degree.
Well not because I don’t smoke myself
I don’t reckon they’ll harm your health
I’ve smoked all my life and I’m not dead yet.
But nicotine slaves are all the same,
At a pettin’ party or a poker game,
Everything’s must stop while they smoke a cigarette.

Smoke! Smoke! Smoke! that cigarette.
Puff! Puff! Puff!
And if you smoke yourself to death,
Tell Saint Peter at the golden gate
That you hate to make him wait,
But you got to have another cigarette.

Now in a game of chance the other night,
Old Dame Fortune was doing me right.
The kings and queens just kept on comin’ round
I played ’em hard and I bet ’em high
But my bluff didn’t work on a certain guy
He kept on raisin’ and layin’ that money down
Yeah he’d raise me, and I’d raise him.
I sweated blood, gotta sink or swim;
He finally called, but he didn’t raise the bet.
I said aces full, pal,
How ’bout you?
He said well I-I’m gonna tell you in a minute or two
But right now I got to have a cigarette.

Smoke! Smoke! Smoke! that cigarette.
Puff! Puff! Puff!
And if you smoke yourself to death,
Tell Saint Peter at the golden gate,
That you hates to make him wait,
But you gotta have another cigarette.

Now the other night I had a date
With the cutest little gal in the 48 states,
A high bred up-town fancy little dame.
She said she loved me,
And it seemed to me
That things were about like they oughtta be.
So Hand in hand we strolled down lover’s lane.
She was oh so far from a cake of ice,
Our smoochin’ party was going nice,
So help me Hannah I think I’d’ve been there yet
But I’d give her a kiss and a little squeeze
And she said, “Phil, would you excuse me please,
But I got to have a cigarette.”

Smoke! Smoke! Smoke! that cigarette
Puff! Puff! Puff!
And if you puff yourself to death,
Tell Saint Peter at the golden gate,
That you hate to make him wait,
But you got to have another cigarette.

~ Merle Travis

Uttakarsha - View my most interesting photos on Flickriver

Read Full Post »

Another day at work. Nothing much to do. I have been asked by my TL to rework on a proposal. It’s not for sending to the client. The guys wish to check out the improvement that we can put in the proposal after some kind of exercise we were going through in the past week or two. But, it’s not my cup of tea. And I am not sure what to do about it. Let me tell you that I am not a presales guy. I am a technical guy, an Engineering graduate. But my current employer being a PCMM level 5 organization, doesn’t find a need of having dedicated guys for presales. As I am free, they can ask me for anything. I had joined this organization around 9 months ago for a technical position. The HR had told me that it was an immediate onsite opportunity. In the Managerial Level Interview I was told that they have lots of projects (They indeed had few projects when I joined but none in the technology I expertise ( 🙂 that’s how we say it) in) and I can travel to Saudi, South Africa, Angola and I don’t remember which other countries. Yes, US is not in the list because I can be eligible for an H1B application only after being here for an year. So, after 9 months I am still here waiting for a project. There were two other people over here from the same technology. Both had joined around 3 months earlier to me. Karthik is now in Angola for some support project which they have managed somehow. He is there along with Raghav who has little experience in the technology. But he was smart enough to clear the client interview, thanks to Google chat (Sorry Raghav! Karthik told me so 🙂 Hope you don’t mind). Suba is on her maternity leave. And I am sitting over here trying to enjoy writing this post. So, that’s my situation.
I have indeed tried my best to escape from this situation. The first six months over here was the probation period and the good thing about it was that the notice period was only 1 month (Now it’s thrice). I had tried my luck but thanks to recession, I couldn’t even appear for a single interview. Anyway, the time is changing and I am getting some calls. Few days ago I appeared for XXX interview. The interviewers were beginners in the technology. It was easy satisfying them. HR was offering me a hike which is roughly 17%. She asked me to think over, but I never received a call again. On mailing twice to the consultant I got a reply, “….Your profile would not match the position….”. Last week I appeared for YYY ZZZZ. It was a client interview. The interviewers were experienced but still one of them (who was younger compared to the other two) refuted one of my answers and when I practically verified it later, just for my satisfaction, I confirmed my correctness. In the HR interview I was told that based on the company’s norms my current salary was on the higher side. Ultimately the lady said she will try to get approval for a salary which was 7.5% higher than my current. Now thats insane. Don’t you think so? I asked her whether it means that no one with my experience gets a package (current!) equivalent to mine in that organization. To my surprise she said it was true (HRs are big time frauds). Anyway, I am expecting the offer soon. I am expected to work for 14 hours a day and even on weekends. I got a small issue with this offer. Sometimes when you are desperate for a better future, your past comes and stands infront of you like a monster. I had resigned from my earlier organisation (an IT giant who’s Chairman had accepted to the fraud charges merely two months after I had switched) due to a misunderstanding with the Delivery Manager and another Manager who happened to be immediate next to the Practice Head as per designation. Now the bad news is that the same guy (later one) is also having an offer from YYY ZZZZ and he will be joining there obviously at some very high position. Now that’s called a screwed luck. Let me clarify here that the sourness in our relationship may have started with some kind of misunderstanding but I had put my best efforts to prove it to him that he is not dealing with some ordinary guy (I shall write about those efforts some other time, if you are too eager to know about it). And now I suppose that enthusiasm can cost me dearly. In another interview for PQRS, I was told that they are having a CoE (Center of Excellence). Now that indeed sounds fascinating but it is pretty the same thing which we have over here. On asking he told that they have more than one project running. I couldn’t resist asking the interviewer whether I will get to work on a project once I join the organization. The interviewer fumed up pointing out that they are not wasting their time simply interviewing me. As expected, I couldn’t clear it. Clearing it would not have made a difference anyway :). Anyways, let’s hope for the best. O Yes, one more hope. I have got another interview scheduled tomorrow. Have also send my resume at other organizations with expectations, but they are taking long. Let’s wait and watch. There is hardly anything else that I can do anyway.
For now I plan to talk to my Manager about his plans for me. As I have already said, I am not interested in writing proposals. My TL who is leaving for onsite day after tomorrow had a small chat with him regarding me yesterday. Seems he wants me to implement the proposed system in the proposal over here, just in an effort to prove our capability to ourselves. Though that sounds somewhat interesting to me but when I think about the ‘Immediate Onsite Opportunity’ I was told about, its back to square. An option could be spending few more months over here and then try for another offer. But I am going to spend those months doing what? Let’s see whether the discussion with my PM helps.
Okay… I just got a call. A company based in Noida with Headquarter in US is looking for people of my profile to work for their client in Chennai. The Lady was quiet excited and before having any kind of interview she made it clear that a salary which turns out to be 20% hike is what they are going to pay. Now that sounds cool. But did you smell somthing? The client is YYY ZZZZ. W…T…..F……..?
I need to get out of this. I’m going to look for my Manager. Will have a glass of water before that. The least you can do is to wish me good luck. Please do that. 🙂

<!– Turned Public after nine months –>

Read Full Post »

It was last weekend and we had the Friday off. There was no way we were going to stay at our room for three days. A week earlier we had planned for Kodaikanal or Ooty. Even Alleppey was on the list. The whole plan was dependent on the Rail Tickets. As expected, the plans got screwed because of unavailability of tickets. In fact, to tell you the truth we have rarely succeeded in executing a plan and that’s the reason I generally don’t prefer plans. But if you have three free days, the research for the plan is a nice time pass. Anyways, ultimately the plans had failed and Kedar and Rajeev were looking forward for our permanent backup plan. Ya! It’s Pondycherry. We have always enjoyed the 135 km drive on the ECR Road and the stay at our preferred Hotel ‘Le Heritage’. As I already mentioned it is a kind of Permanent Backup Plan and I wanted to have a new experience. While returning from the office on Thursday, I knew that I needed a new plan.

Once I reached our room, I had few hours for exploration before Kedar would arrive. I had Yercaud somewhere in my mind. As soon as I arrived, got refreshed and switched on my laptop. In a few minutes I had Google as well as Google Map opened in the Mozilla. Few more minutes and indianrail.gov.in got open in another tab. I had never thought that Selam could only be 5 hours from Chennai by Train. That was an amazing piece of information. My heart was pumping faster. Five hours meant that we could travel even in Open Ticket (General) and that was adding more certainty to the plan. I knew that it was the plan for the weekend, and I immediately shared it with Rajeev. He was equally excited and responded with his trade mark words. “Ye to awesome hae bhai!“. We had some exchange of views regarding the mode of transport but keeping in mind the condition of my Bike and the distance which is around 370 kms, I was in favor of Train. Then there was an excellent idea from me that we travel till Yellagiri in the night, stay there for the night and move ahead for Yercaud in the morning. That was just to satisfy our eagerness for driving. Rajeev while exploring the plan also pinged Kedar and his immediate response was in favor of Bike. As soon as Kedar reached, we had another round of discussion on the mode of transport and this time Rajeev was also considering Bus as an option. Considering that it was Thursday night and next three days were holidays, we could imagine the rush in Buses. There was one and only option and that was Train. There are so many trains to Selam. The ones with our interest were at 6:30 and 11:30 AM. We zeroed in on the one at 6:30. Kedar had put an alarm for 4:00. I don’t know about Rajeev but I had my doubts about 4:00 am.

As expected, when I got into my senses in the morning the Wall Clock was showing 8:00. The morning 6:30 plan was screwed. I preferred to be horizontal till 8:30. I came out of loo at 9:00. Asked Rajeev to wake up but there was no response from him. Even 11:30 was appearing uncertain. Asked Kedar, he responded, but his response was not encouraging. The three days were going to get wasted. Went in the hall and laid down on the mat. Again Pondycherry? No. Stood up, went to Kedar. “Cummon, get up! We will catch the train at 11:30.” That’s the good thing about him. He took his time, but was on his feet and into the loo. Now it was Rajeev’s turn. He took his sweet time, booted his laptop and started exploring something. The uncertainty about the plan was on a rise and Rajeev contributed by informing that the Watch was not showing the correct time. When Kedar came out of loo, the time in the watch was 9:30 and the actual time in Rajeev’s lappy was 9:50. We were in big mess. We had to get the ticket as well on the station. Rajeev was much certain about the uncertainty. He once again contributed by clarifying that the Local Train from Thiruvanmiyur doesn’t go to Central. That’s called the right thing at the right time. Once again he offered the plan for Coyembedu, the Chennai State Bus Terminus. Somehow we left the room at 10:35 and got an Auto Rickshaw around 10:40. Rajeev once again offered the Coyembedu Plan. I tried convincing him that we will reach Central in 30 minutes. There were a number of ideas offered at this time by all of us. I offered an intelligent idea. If we don’t buy the tickets, we will save enough time to be certain about catching the train. I got support from Rajeev but Kedar was very apprehensive. When we sit idle, our mind is most active. We came up with so many options. We can take the same Auto-Rickshaw to return to our room in case we miss the train. We can take the same Auto for Coyembedu and then for our room. Suddenly I realized that if the Auto-Wala gets to understand our talk he can intentionally delay us in order to make some nice money out of us. Thiruvanmiyur to Central to Coyembedu to Thiruvanmiyur can be a really interesting deal for him. Now that’s what you call intelligence. We were running while looking for the Ticket counter at around 11:15. We found the right counter and stood in the queue. It was much smaller than my expectation but was enough for us in order to make the 11:30 plan critical for us. Rajeev contributed once again by mentioning that the Train time is actually 11:25. I wasn’t able to stand still on my feet. I moved to the front of the queue and requested the person mentioning our situation. I indeed saved 3-4 or even 5 minutes by doing so. Now we were running towards the platform. The train was supposed to be on Platform No. 1. We were on Platform No. 4. I and Kedar were at least in running mode whereas Rajeev was walking freely. It was 11:25:** in the station clock. I was putting all my strength when Kedar pointed towards the board which was displaying the departure time as 11:30. I realized why Rajeev was walking freely. Finally we had reached the Train on time.

But that was not final. The General bogey was fully packed. We moved ahead. Even the Sleeper Coaches were rushed. We moved towards the General Compartment at the other end of the train, expecting that not much people would walk till there. But how was that possible! That bogey was equally packed and we couldn’t prove our energy by getting in. At that instant, the train whistled and started moving, accelerating. I asked my friends to jump inside any of the bogeys. General Compartment was already gone. Doors of some of the compartments were closed. 2nd bogey gone! These guys were still on the Platform. Once again I asked them to get in ANYwhere. No Action. There was no way I was going to be left on the bare platform. 3rd bogey gone! I stepped ahead. There was some space at one of the doors, which was moving towards me. As it reached near me, hold the rod besides the door; ran along for 2-3 steps and jumped on the foot rest. Turned towards my friends! There was some action. Rajeev followed me and then it was Kedar’s turn. So, finally we were inside, and I had the ticket in my pocket. Now there was nothing to stop us from reaching Selam, and once we reach Selam, Yercaud won’t be an issue.
We spent our time in train in that constraint space in between the two doors next to the toilet and the hand wash. We spent most of the time on our feet, standing. I and Kedar had some time sitting on the door whereas Rajeev additionally managed a top birth to lie on for a short time. We didn’t have anything to eat since morning. Ultimately around 2:00, we got some Chatni-Wada at Katpadi. That was a huge relief. We got some drinking water. The only thing we were happy about was that, Harsh was not accompanying us as he had left for Bangalore the earlier night. Even Deb was busy. Thanks to his new job. That was a huge relief for us. Our journey to Selam was indeed not pleasent but neither were we regretting it nor were we sorry about it. It was after all an experience. I hope Kedar and Rajeev would support me on that. 🙂 We got to see the nice Campus of Vellore Institute of Technology. Rajeev expressed his moral support for the college guys as there were hardly any females to be seen in the huge crowd in the campus. It could be the boy’s hostel. We met an elder guy who suggested us to better get down at Jolarpettai than at Selam. Sadly I prefer trusting our research more that other’s suggestion. After a delay of 30 minutes we were at Selam Station.

Once at Selam, we got an Auto-Rickshaw for the New Bus Stand. Got some Soft Drinks and get into the bus for Yercaud. It takes around one Hour on bus. I guess there were 22 Hair Pin Bends. Driving up the hill on bike would have been an amazing experience. When we reached at the top it was dark. There were taxies available at the bus stand. Simply I asked for the charges to Chennai. The amount mentioned was Rs. 5000/-. We decided to search for a Hotel Room. Which ever Hotel we went to was full. We were further told that we won’t get a Hotel Room in Yercaud. Ultimately we decided to get an Auto-Rickshaw. May be an Auto-Wala can help us in searching and getting a hotel. We reached near the lake. We decided to put something in our stomach before starting the search. The Auto-Wala tried his best. He took us to some hotels that were relatively far and were expected to have rooms available. At the end of the search episode we were back at the same location. He offered to drop us at Selam for Rs. 500. The last bus was at 9:30 so we had enough time with us. We decided that it’s better to reach Selam soon. We can get into some nice Hotel and enjoy the Food and Drinks. We decided to travel in Auto as the weather was pleasant and it was dark. After a few kms a bus overtook us and the Auto driver offered us help in catching the bus. I suppose we had enjoyed the weather enough and we decided continue our journey to Selam in bus. It would have taken us an hour. As the bus entered the town, we were looking out of the window for some nice hotel. There were lot many hotels near the Bus Stand. We found a nice bar named Caves in the basement of Hotel Vivekananda. But we didn’t like the Hotel room. I suggested my friends to better get inside the bar. It was around 10:00. The closing time was 11:00. But Kedar and Rajeev wanted to get the room first. We asked in 3-4 hotels but none had the A/C rooms available. In the end we got it in some hotel and when we asked the guy showing us the room, he told that the food as well as drinks are available as part of Room Service 24 hours round the clock. Now that was more than enough for finalizing the hotel. We booked a room and called the person to take the order. We had placed the order but to our astonishment he asked for the money. We realized that he is going to get the food as well as drinks from outside. He didn’t even have a menu card. That was a big distraction for me. Rajeev immediately suggested that it’s still around 10:35 and Caves would still be open. There were no second thoughts. We immediately got dressed and moved for the Caves. Once we reached there, the environment was pleasant. An IPL match was being telecasted on the TV. But they didn’t have snacks. Whatever was available was complimentary. That was again a distraction, but considering the time we found it to be the best option. The Restaurants on the road were open and we could have something while leaving. We had only 15 minutes before the bar would serve the last order. Anyways, 3 KF strong! We ordered two more bottles for the last order. 5/3 KF Strong was good enough. I don’t remember the time when we left but they were trying their best to make the environment unpleasant so as to make the customers leave. First the music was stopped along with the TV. Then some of the lights were switched off. Then the A/C and finally the doors were left open and a single strong halogen light was switched on in order to distract us. Yes, in spite of being drunk I remember all this. We left finally not because they were able to distract us by their efforts but because we realized that they are putting in their best efforts. Anyways, we were in our mood when we left Caves. I don’t remember exactly but we did some awkward things while walking back to the Hotel. I guess that it was just an act to convince ourselves that we were drunk. When we reached hotel we decided that 2 more bottles would make the feeling awesome. We ordered for it. But to out surprise we were told that the drinks were served only till 11:00 and it was much late. But the mood we were in we didn’t cared for that. We watched the IPL for some time and then it was time to get into the bed. Rajeev had put the extra mattress in the spacious balcony. I too got the sofa cushions and slept next to him. The idea was to wake up early in the morning.

The sound of first horn in my ears and I moved inside and lied next to Kedar. Few minutes later Rajeev also joined in. Everyone was still in the sleeping mode. Someone switched on the TV. Later we ordered some Idly-Wada. It was around 11:30 when we started for Yercaud again. Reached their around 1:00. As soon as we got down from the bus, we met a Taxi Driver, who was asking for Rs. 700/- for Sight-Seeing. Later we came to know that the guy was trying to fool us. I insisted on having lunch before starting. Lunch meant lunch + alcohol. At least a bottle of Kingfisher per head! We had a consensus on that. We started looking for a bar. The first one we went into didn’t have KF. I had read about Hotel Grand Palace having a nice bar. We decided to go for it. We got KF Strong and were surprised to see the price. Mere 120/-. So the lunch started. It was around 3:00. A new idea was suggested by Kedar. “Let’s postpone the Sight-Seeing for the next trip and enjoy the drinks.” I fealt as if usne mere muh ki baat cheen li ho. Rajeev initially expressed his uneasiness in his trademark style and the next moment, as expected, he was in. Hyderabad VS Jaipur. Yes that was the IPL match which started in a while. We enjoyed the whole match and as soon as it was over, we decided to start back for Selam. It was nice walking down the Hillock. It was dark and cold. Mausam ka maza lene ke liye we hired an Auto-Rickshaw. The Auto-Rickshaw journey was really pleasant. In order to take some extra mausam ka maza we asked the Auto Driver to stop near a particular hair pin bend. I asked for Kedar’s camera as my batteries were discharged. That was the moment Kedar realized that he didn’t take back his charger and the batteries after giving them for charging at the bar. Okay, the NiMh batteries and their charger don’t cost less and I immediately suggested that we have got enough time to go back and get it. So we returned from the half way. Our third journey for Yercaud! We got there and get the stuff. It was around 10:00 and the Auto-Wala was not comfortable dropping us at Selam. He offered to arrange a Taxi. We didn’t had any issue accept that we had to reach Selam before 11:30 as that was the scheduled time for our bus to Chennai. He told us that it will take an hour to reach Selam and he would arrange the Taxi in 10 minutes. His ten minutes kept extending and the taxi arrived at around 10:30. I was tensed and I bet even Kedar and Rajeev were in the same mode, but we kept our calmness and discussed about the possible options, including the option of having a fourth journey to Yercaud next morning in case we are not able to make it for the bus. You bet? All three of us are very positive minded people. We were surprised when we saw time while getting down at Selam. We still had 20 minutes. Now that’s the award of displaying calmness. That tensed Taxi journey was the last exciting thing that happened to us on the whole trip. We got down at Guindy at around 5:30 in the morning, the next day. Took an Auto and reached our place. That’s it. Had a whole day rest and next day we were back on our regular office schedule.

So, we didn’t let the three day vacation go waste. The moral of the story: Jahaan chah hae wahaan rah hae. 😉

Read Full Post »

Workflow represents a Business Process.

A Workflow Defination consists of multiple Activities which can be Manual or Automatic. Manual Activities are performed by a Performer or a User whereas an Auto-Activity is generally performed by a program on behalf of a user (using a User’s session). The program used for Auto-Activity has to follow certain guidelines. The class should implement IDmMethod or WorkflowMethod and accordingly it should implement execute or doTask from the corresponding interface. This program is configured as a workflow method, an instance of dm_method with its a_special_app property set to ‘Workflow’. It can be created using DAB or DA + DQL. The Manual activities are made available to the Performers in their inbox as task.

The activities are linked through flows. Flows have Packages associated with them. It’s mandatory for Flows to have at least one associated Package. The ending flow is an exception which doesn’t have any associated package. A Package specifies an object type whose objects can be attached in the package as attachments. A flow can be a Normal Flow or a Reject Flow. A Reject flow is represented by a red line in the Workflow Template. Using a Reject Flow in a Workflow Template automatically generates a Reject button in an inbox task.

Object Types:
The workflow template/definition                        : dm_process
The constituting activities                                    : dm_activity
The running instance of workflow                        : dm_workflow
The running instance of activity                           : dmi_workitem
The package associated with a workflow            : dmi_package
The representation of manual activity in inbox    : dmi_queue_item

Object Relationship:

A document attached in a Workflow:
A document is actually attached to a package which in turn is associated with a flow in a workflow. As seen in the Object Relation diagram above:


dm_workflow dmi_queue_item dmi_package dm_sysobject
(workflow) (inbox) (package) (document)
r_object_id = router_id = r_workflow_id
r_component_id(Rep) = r_object_id

Keeping in mind the above relation, the below mentioned DQL query can be used to find out the documents present as workflow attachment in a user’s inbox.

SELECT DOC.r_object_id, DOC.object_name
FROM dm_document DOC, dmi_package PACKAGE, dmi_queue_item INBOX
WHERE INBOX.name = 'Uttkarsh'
AND INBOX.router_id = PACKAGE.r_workflow_id
AND any PACKAGE.r_component_id = DOC.r_object_id
AND INBOX.delete_flag = 0

Vice-Versa if the document is present as a workflow attachment and its properties are known, the following DQL query can be used to find the User in whose inbox it is present.

SELECT name, task_name
FROM dmi_queue_item INBOX, dmi_package PACKAGE, dm_document DOC
WHERE DOC.object_name = 'queries.txt'
AND any PACKAGE.r_component_id = DOC.r_object_id
AND INBOX.router_id = PACKAGE.r_workflow_id
AND INBOX.delete_flag = 0

In addition to above, an Administrative Method GET_INBOX can also be used to get the details of task in a user’s inbox.

EXECUTE GET_INBOX with name = 'Uttkarsh'

Guess that’s enough for this post. Hope you enjoyed reading it. 🙂

Read Full Post »

Older Posts »