Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Debug Request Ignored. Source Code Is Hidden for all new/Modified actions

7 views
Skip to first unread message

Iain

unread,
May 17, 2008, 9:43:39 AM5/17/08
to
Can anyone please tell me how I have managed to get into this mess.

I am using Lotus Notes 6.5.6 and working on an application that was
created in Lotus 4.5, migrated to Version 5 then to version 6.

The way I have always worked is to temporarily stop replication on a
local copy of the database, make any code changes, test them and then
re-enable replication thus moving the new code back into the public
domain. It has worked perfectly until now.

I was needing to fix 2 lines of code in the code behind an action
button on a view.

I made the changes and ran the action in debug.
I could not see the changes I had made ???
I could only see the old code, and the results produced verified that
it was the old code that was being executed.

As far as I can remember I have done nothing different to what I would
normally do.

I opened the editor and verified that the changes had been made and
saved (Just to check if the wheels were falling off my trolley). I
tried this again a number of times to no avail.

I exported the newly changed code to a text file and deleted the
action. I created a new action and imported the previously saved code.

Now I cannot debug this action (it must still be running the old
version of the code as the results being produced are the same as
before). When I try to run the action in debug I get the message

Debug Request Ignored. Source Code Is Hidden

and the action completes.

I have noticed that I can still run any of the other unchanged actions
in debug and all other objects that have not been modified still open
the debugger when executed.

Any new actions I create have the same problems.

I have replicated all code changes back to the server and thus to
other client machines. I have tried to debug the new actions or
changed code on other client machines with the same results.

I have spent the last 3 years defending Lotus Notes/Domino within my
company against people who want to get rid of it. All of this assists
me in no way and I am almost ready to throw in the towel


Many thanks in advance for any assistance offered (which will be most
gratefully received)


Iain

Karl-Henry Martinsson

unread,
May 19, 2008, 8:05:41 AM5/19/08
to
"Iain" <Email.Ia...@gmail.com> wrote in message
news:3163de9c-d315-43d5...@c65g2000hsa.googlegroups.com...

> Can anyone please tell me how I have managed to get into this mess.
>
> I am using Lotus Notes 6.5.6 and working on an application that was
> created in Lotus 4.5, migrated to Version 5 then to version 6.
>
> The way I have always worked is to temporarily stop replication on a
> local copy of the database, make any code changes, test them and then
> re-enable replication thus moving the new code back into the public
> domain. It has worked perfectly until now.

I have a design template on my central production server. I also have a
replica of it on my test server, where scheduled replication is turned off.
In my environment, the branch servers initiate all replication, so this
would prevent any replication.
On my test server I also have a replica of the production database. I make
my changes to the template on the test server, apply it to the replica there
to test it. When it works, I manually replicate the template to the
production server.
For bigger changes, I create a new template (database copy), increase the
version number (change template and file name) and make the changes. I the
replace the design on the database on the test server. When it is tested, I
make a database copy of the new template to the production server and
replace the design of the production database.

> I was needing to fix 2 lines of code in the code behind an action
> button on a view.
>
> I made the changes and ran the action in debug.
> I could not see the changes I had made ???
> I could only see the old code, and the results produced verified that
> it was the old code that was being executed.

I have seen this sometimes when old code is being cached. If you restart the
Notes client and Domino Designer, it should work.

> As far as I can remember I have done nothing different to what I would
> normally do.
>
> I opened the editor and verified that the changes had been made and
> saved (Just to check if the wheels were falling off my trolley). I
> tried this again a number of times to no avail.

Try to restart Notes/Domino Designer, it could be old code cashed,
especially if you kept the view open in Notes while you made the chnage in
Designer.

> I exported the newly changed code to a text file and deleted the
> action. I created a new action and imported the previously saved code.
>
> Now I cannot debug this action (it must still be running the old
> version of the code as the results being produced are the same as
> before). When I try to run the action in debug I get the message
>
> Debug Request Ignored. Source Code Is Hidden
>
> and the action completes.
>
> I have noticed that I can still run any of the other unchanged actions
> in debug and all other objects that have not been modified still open
> the debugger when executed.
>
> Any new actions I create have the same problems.
>

Must be some setting you changed/created. Did you sign the chnages with your
ID or with a special developer ID?

> I have spent the last 3 years defending Lotus Notes/Domino within my
> company against people who want to get rid of it. All of this assists
> me in no way and I am almost ready to throw in the towel

That's good. Do they say why they want to get rid of it? From what I seen,
most of the complaints about "Notes sucks" comes from bad
setup/implementation and/or lack of training of the users.

/Karl


Iain

unread,
May 19, 2008, 8:55:21 AM5/19/08
to
Thanks for the reply Karl.

I have raised a ticket with IBM.

I have been advised at this point to recreate the view which the
Action buttons are on and then
recreate the actions etc.

When I get a solution I will update this post as I have noticed a
couple of other posts on the web
regarding the same problem but with no solutions.


> I have seen this sometimes when old code is being cached. If you restart the
> Notes client and Domino Designer, it should work.

I have restarted the notes client and the developer
No Change.

I have reinstalled the notes client and developer.
No change.

I have run a fixup of the database on the server.
No Change.

> Try to restart Notes/Domino Designer, it could be old code cashed,
> especially if you kept the view open in Notes while you made the chnage in
> Designer.

I always close the database I am working on while I am making changes.
Did that this time as well.

> Must be some setting you changed/created. Did you sign the changes with your


> ID or with a special developer ID?

Used my own id. I am the manager of all databases in the application.


> > I have spent the last 3 years defending Lotus Notes/Domino within my
> > company against people who want to get rid of it. All of this assists
> > me in no way and I am almost ready to throw in the towel
>
> That's good. Do they say why they want to get rid of it? From what I seen,
> most of the complaints about "Notes sucks" comes from bad
> setup/implementation and/or lack of training of the users.


This is the only application we have in Notes - we do use notes mail -
but it is the application
that is giving Notes a bad name.

It is the result of a extremely bad design and implementation of an
application 12 years ago in Notes 4.5.
The application - a customer order configurator - was created by
someone else in a branch of the
company which sold us off so the designer/programmer is no longer
available to us..
This has been compounded by massive changes over the last 6 years. I
have added 2 new databases
(6 databases now) and possibly 140,000 lines of code to the
application over the last 6 years. However
this has been hampered by the original bad design.

This results in users getting annoyed rather frequently.

JRT

unread,
May 21, 2008, 9:32:53 AM5/21/08
to
As Karl mentioned, it could be a cache problem.

Have you tried the following one by one
Compact the database
Compact the workspace
And lastly, delete desktop6.ndk and cache.ndk (becareful, this will
wipe out your Workspace database icon)

Karl-Henry Martinsson

unread,
May 21, 2008, 10:42:49 PM5/21/08
to
"Iain" <Email.Ia...@gmail.com> wrote in message
news:d029c145-6d7c-49db...@f36g2000hsa.googlegroups.com...

> Thanks for the reply Karl.
>> > I have spent the last 3 years defending Lotus Notes/Domino within my
>> > company against people who want to get rid of it. All of this assists
>> > me in no way and I am almost ready to throw in the towel
>>
>> That's good. Do they say why they want to get rid of it? From what I
>> seen,
>> most of the complaints about "Notes sucks" comes from bad
>> setup/implementation and/or lack of training of the users.
>
>
> This is the only application we have in Notes - we do use notes mail -
> but it is the application
> that is giving Notes a bad name.
>
> It is the result of a extremely bad design and implementation of an
> application 12 years ago in Notes 4.5.
> The application - a customer order configurator - was created by
> someone else in a branch of the
> company which sold us off so the designer/programmer is no longer
> available to us..
> This has been compounded by massive changes over the last 6 years. I
> have added 2 new databases
> (6 databases now) and possibly 140,000 lines of code to the
> application over the last 6 years. However
> this has been hampered by the original bad design.
>
> This results in users getting annoyed rather frequently.

So they don't like Notes because of one application, badly designed
(probably not even by a real programmer), with massive patching/additions
over it's lifetime? And that is Notes' fault exactly how, except for being a
tool making it easy to develop applications even for people who are not
expert programmers? :-)

If that is such a bad application, how hard would it be to rewrite it, or at
least modify it enough to fix the problems?
What are the main concerns? First of all, I would do this:
1. Update the look of the application. I would use a tool like Ytria
actionbarEZ (http://www.ytria.com/) to fix all action bars with a nice new
look. Download some new nice icons for action bars, etc. Then go through the
forms and update them to a modern look, try a nice clean "web 2.0" look for
example. Few colors, use whitespace and borders to divide the screen into
sections, etc. There have been a bunch of good sessions at Lotusphere about
user interface design. Just the perception can do alot.
Here are a couple of screenshots of one of my applications. All in R5:
http://www.flickr.com/photos/texasswede/436687379
http://www.flickr.com/photos/texasswede/436687347
http://www.flickr.com/photos/texasswede/436686108
http://www.flickr.com/photos/texasswede/2071564929
http://www.flickr.com/photos/texasswede/2235410624
Just to give you some ideas... I have a .SWF animation of another
application, but because it has some real data in there, I do not want to
post it here. Can send you a link if you are interested, though.

2. Look at where the performance problems are located. Which actions are
slow, and which are "fast enough" for now? Look at how you can optimize the
application, there are plenty of whitepapers and tips out there. I have a
huge database at my work, and it took users 2-3 minutes to open views
sometimes. I turned on RPC logging, and noticed that the big delay was in
getting the unread marks. I changed the advanced database setting to "Don't
maintain unread marks", and the views then opened in 4-5 seconds! Just one
example. You may want to hire an experienced developer/performance
specialist.

3. Remove any unneeded views, remove multiple column sorting (increases the
view index size and time to rebuild), etc. Think about replacing some views
with lookups using FT Search.

4. Look at your @DbLookup and @DbColumn, and optimize them. Make sure you
cache data, and avoid multiple lookups, if you can combine them into one.

5. Think through the application, can you rewrite just some of the slow
parts? Think about using object oriented Lotusscript programming. Perhaps
you can use lists, that can improve performance in some cases over arrays.

6. If agents/actions are slow, make sure you don't do stupid things like
using GetNthDocument().

7. Consider using a progress bar when you perform actions that you knwo will
take a while, say more than 10-15 seconds. Users will then percieve that
things are happening. When I implemented that in one of my applications,
complaints of it taking forever stopped overnight... They now could see what
was happening.

8. Progressive disclosure. Use Ajax-like techniques to load just the data
the user need, then load more later.

9. Use JSON or perhaos a global custom data structure (perhaps implemented
through a class) to store data once. In many cases it is cheap to pre-load
data at one time, then get to it later without going back to the server.

10. Consider implementing caching. I did that for one application, instead
of making the same lookups over and over again to the server (e.g. the name
of the manager for current user, or his/her authority levels for payments),
I store the values locally (in an XML file) the first time I retrieve them,
then read them every time I need them from there instead of making an
expensive db.GetView(), view.GetDocumentByKey() or db.FTSearch().

11. Make sure the database is full text indexed if you use searching, and
use db.FTSearch, not db.Search... Avoind view lookups to views that
frequently changes. Make sure you don't use @Now or similar in view
columns/selection formulas.

Hope you got some good hints here...

/Karl


JRiv...@gmail.com

unread,
May 23, 2008, 9:18:43 AM5/23/08
to
The bible of performance problems

White Paper: Performance basics for IBM Lotus Notes developers

http://www-1.ibm.com/support/docview.wss?rs=463&context=SSKTMJ&dc=DA400&uid=swg27012441&loc=en_US&cs=UTF-8&lang=en&rss=ct463lotus

Abstract
This document serves as a pointer to a white paper addresses the most
important and most serious factors affecting IBM® Lotus® Notes® and
Domino® application performance.

Karl-Henry Martinsson

unread,
May 23, 2008, 10:04:32 AM5/23/08
to
<JRiv...@gmail.com> wrote...

That's right, Andre posted that the other day.

I also blogged about this thread, and Nathan T Freeman is very
interested in getting in touch with the original poster.

See http://www.bleedyellow.com/blogs/texasswede/entry/lotus_notes_sucks
for his comments, here is a quote:

<quote>
140000 lines of code!??!?!

That's about 22000 lines of code a year. The longest script library I
currently have active is about 2000 lines long -- so this guy made the
equivalent of 10 of those a year!?

This screams to me that there's a whole bunch of really, REALLY bad code
in there. Probably a lot of NotesDatabase.Search lines followed by
.GetNthDocument and some NotesDocument.~$Readers = "yadda"

No custom application on a PC platform can survive 12 years without a
refactor and still be considered efficient. If you built a website in
1996, would it's operation be state of the art today? If you worked with
a native OS at the time it would be Windows 95! The biggest competing
platforms for coder attention in the IT workplace were Visual Basic and
PowerBuilder, not .NET and J2EE.

It sounds to me like this is a company that has never considered the
idea of refactoring the app, whether on the Notes platform or some other
platform, for the good of their users. If it's an order configurator
that likely runs their business, they probably endure tens of millions
of dollars of lost productivity for users of the app simply because they
don't want to invest in it.
</quote>

Iain, you might want to contact Lotus911.com, they can probably help you
and the company, and save money at the same time.

/Karl

--
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing in e-mail?
=============

Visit my blog at http://www.bleedyellow.com/blogs/texasswede/


willem.souwer-a-gmail-d-com

unread,
Jun 10, 2008, 3:15:55 AM6/10/08
to
On 19 mei, 14:05, "Karl-Henry Martinsson" <n...@martinsson.us> wrote:
> "Iain" <Email.IainWil...@gmail.com> wrote in message

@Karl: Sorry Karl, this problem occurs without changing or creating
any settings, just by repeatedly updating the code in LotusScript
"Shared Actions"; it occurs independently . Restarting Domino and/or
recreating desktop files do not influence the results.
It appears as if only a limited number of code changes are actually
"registered", after which all subsequent changes are discarded (i.e.
not recompiled).
I encountered this very problem, also in a legacy application that had
been upgraded to R6.5.6.

@lain : The only effective workaround seems to be (1) start over with
a copy of the last design before the change (2) copy the existing LS
code to a NotePad or other external editor, make the required changes
there; (3) create a new shared action and paste the changed code
there; (4) verify it works, and then delete the old shared action.
Caveat : be sure to set aside backup copies of your design before
every step. In my case a number of other undocumented problems,
related to views as well as to recompilation of LotusScript, also
manifested themselves in the same NSF subsequently, and I had to
reassemble the whole thing using copies of design elements from
previous versions of the design.

Would be very interested as to the response to the IBM ticket. Please
inform.


0 new messages