Loading…
APAR status
-
Closed as fixed if next.
Error description
-
Issue similar to SPR KCAR73QM6Q Steps to reproduce 1.Open Lotus Notes 2.Open Java console - Tools- Show java debug console 3.Open Designer 4.Create a blank application 5.Create LS Agent or LS script lib or database script 6.write the following : UseLSX "*javacon" 7.An error will be generated: "Error loading USE or USELSX module: *javacon"
Local fix
Problem summary
-
The record was returned to the person who created it for more information.
Problem conclusion
Temporary fix
Comments
-
This APAR is associated with SPR# RNIA8RNHFQ. The record was returned to the person who created it for more information.
APAR Information
-
APAR number
LO67465
-
Reported component name
NOTES CLIENT
-
Reported component ID
5724E6255
-
Reported release
850
-
Status
CLOSED FIN
-
PE
NoPE
-
HIPER
NoHIPER
-
Special Attention
NoSpecatt / Xsystem
-
Submitted date
2012-02-20
-
Closed date
2016-08-08
-
Last modified date
2016-08-08
-
APAR is sysrouted FROM one or more of the following:
-
APAR is sysrouted TO one or more of the following:
Fix information
Applicable component levels
-
R850 PSN
UP
[{«Business Unit»:{«code»:»BU055″,»label»:»Cognitive Applications»},»Product»:{«code»:»SSKTWP»,»label»:»Lotus Notes»},»Component»:»»,»ARM Category»:[],»Platform»:[{«code»:»PF025″,»label»:»Platform Independent»}],»Version»:»8.5″,»Edition»:»»,»Line of Business»:{«code»:»»,»label»:»»}}]
APAR status
-
Closed as unreproducible.
Error description
-
Problem description Customer is reporting the error "Error loading USE or USELSX module "javacon" when trying to opne the Widgets database (N.B. file database open or open via workspace ), after installing Notes 901FP1SHF182. The issue occurs when trying to access the Widget Catalog, either on the server or on local. Error appears multiple times when opening the Widget Catalog, and when clicking on a document in the Widget Catalog once the app is opened. The issue is not occurring on Notes 9.0.1, Notes 9.0.1 FP1 or after un-installing the hotfix 901FP1SHF182. Environment Notes 901FP1SHF182 Win 64 bit
Local fix
-
None. Uninstall the hotfix 901FP1SHF182
Problem summary
-
The change team could not reproduce the problem or determined that the problem has already been corrected.
Problem conclusion
Temporary fix
Comments
-
This APAR is associated with SPR# RGAU9L7JVK. The change team could not reproduce the problem or determined that the problem has already been corrected.
APAR Information
-
APAR number
LO80899
-
Reported component name
NOTES CLIENT
-
Reported component ID
5724E6255
-
Reported release
901
-
Status
CLOSED UR5
-
PE
NoPE
-
HIPER
NoHIPER
-
Special Attention
NoSpecatt
-
Submitted date
2014-06-18
-
Closed date
2014-07-11
-
Last modified date
2014-07-11
-
APAR is sysrouted FROM one or more of the following:
-
APAR is sysrouted TO one or more of the following:
Fix information
Applicable component levels
[{«Business Unit»:{«code»:»BU055″,»label»:»Cognitive Applications»},»Product»:{«code»:»SSKTWP»,»label»:»Lotus Notes»},»Component»:»»,»ARM Category»:[],»Platform»:[{«code»:»PF025″,»label»:»Platform Independent»}],»Version»:»9.0.1″,»Edition»:»»,»Line of Business»:{«code»:»»,»label»:»»}}]
For a week, I was trying to solve a problem with an old database. The problem was a well-known error message: «Error loading USE or USELSX module» in my agents and script libraries.
This case, I couldn’t update my agents, script libraries, etc. because my designer wasn’t compiling due to this error.
So after hours of try and error, I noticed that I didn’t test one thing I should have tested at the beginning. My friends guess what I’m talking about
If there is Java, you’re living in Turkey, you should check «i» character first!
I did and found the problem. I can reproduce the problem and have opened PMR report. Now I won’t share the exact steps but show the screen shots.
Before, I should tell you that this case is valid for new Lotusscript Editor and Turkish Language in Regional Settings. But there are similar accented character problems in other languages. Therefore use your creativity to find another bug in your language
We have two script libraries:
Now we are opening TestLib02 and connect it to TestLib01. But oops!
Very funny, right?
Suppose we have created this application before. We can’t modify any code in the library, because it wouldn’t compile.
There are two workarounds:
1. Use Uppercase.
2. Disable new Lotusscript editor… This is not happenning in old editor.
What is the implication of this problem?
It also solves the famous «Lotus Workflow is not working on 8.5.x» problem of Turkish customers. Many of my customers mentioned about this problem.
Moreover, this is just a simple case. The lesson of the day is; For any unresolved problems in DDE, if the subject of the problem contains «case insensitivity», the issue is «i» character for Turkish customers.
Expecting your comments about any findings in other languages.
0 / 0 / 0 Регистрация: 23.08.2008 Сообщений: 6,252 |
|
1 |
|
16.03.2017, 12:55. Показов 6903. Ответов 18
сабж ругается на открытие БД, в кот. есть Database Script кто с таким сталкивался?
__________________ 0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
16.03.2017, 12:55 |
Ответы с готовыми решениями: FP8 и views FP8 и Java (очередной баг) Ищу работу дизайнером Умею: Что-то произошло с дизайнером форм 18 |
0 / 0 / 0 Регистрация: 20.02.2014 Сообщений: 467 |
|
16.03.2017, 12:58 |
2 |
Не сталкивался.. потому как java наверное не пользую.. 0 |
0 / 0 / 0 Регистрация: 12.11.2009 Сообщений: 882 |
|
16.03.2017, 20:40 |
3 |
Не сталкивался. Есть и дбскрипт и джавабибл. Почистить что-ть? 0 |
0 / 0 / 0 Регистрация: 23.08.2008 Сообщений: 6,252 |
|
19.03.2017, 11:13 |
4 |
Не сталкивался. Есть и дбскрипт и джавабибл. Почистить что-ть? есть код, кот. использует общую либу (обработка ошибок), в ней обработчик ошибок java 0 |
0 / 0 / 0 Регистрация: 20.02.2014 Сообщений: 467 |
|
23.03.2017, 14:09 |
5 |
поставил fp8 на рабочую машинку.. появилась вот такая бяда.. кто подскажет что сделать?)) 0 |
0 / 0 / 0 Регистрация: 23.08.2008 Сообщений: 6,252 |
|
25.03.2017, 22:17 |
6 |
@swyatogor судя про трейсу — нет путей к либам, при сборке 0 |
0 / 0 / 0 Регистрация: 07.02.2106 Сообщений: 812 |
|
26.03.2017, 08:42 |
7 |
Посмотрите в свойствах проекта какую jvm он использует, есть ли она у вас в наличии. — Добавлено 27 мар 2017. Первое сообщение размещено 27 мар 2017 —
@swyatogor судя про трейсу — нет путей к либам, при сборке Под 1.8 запускается только клиент, дизайнер по прежнему использует 1.6 из папки jvm1.6, проблемы могут быть только с новыми путями к этой jvm и внешним библиотеками из jvm/lib/ext, если вы забыли их положить ещё и в jvm1.6/lib/ext. 0 |
0 / 0 / 0 Регистрация: 20.02.2014 Сообщений: 467 |
|
26.03.2017, 09:19 |
8 |
не стал ломать голову что и как там настраивается.. снес нафиг лотус и поставил старую версию которая была..и всё заворкало 0 |
0 / 0 / 0 Регистрация: 12.11.2009 Сообщений: 882 |
|
26.03.2017, 12:50 |
9 |
снес нафиг лотус Не спортивно. ниразу))) 0 |
0 / 0 / 0 Регистрация: 23.08.2008 Сообщений: 6,252 |
|
26.03.2017, 12:51 |
10 |
и внешним библиотеками из jvm/lib/ext, если вы забыли их положить ещё и в jvm1.6/lib/ext. выше описывал траблу — до перкладывания даже не дохдит 0 |
0 / 0 / 0 Регистрация: 07.02.2106 Сообщений: 812 |
|
26.03.2017, 13:05 |
11 |
выше описывал траблу — до перкладывания даже не дохдит Ну, тут я даже и не знаю… по-моему это уже как-то ломали раньше в очередном фикс-паке, потом починили… ну, теперь снова. Всё идёт по индусскому плану. Такая же проблема была после FP1 и решается она так же, как и тогда — надо запустить дизайнер без клиента. 0 |
0 / 0 / 0 Регистрация: 20.02.2014 Сообщений: 467 |
|
26.03.2017, 14:35 |
12 |
Кстати.. а ни кто не обращал внимания на битность java??.. она там давно 64-х битная? 0 |
0 / 0 / 0 Регистрация: 07.02.2106 Сообщений: 812 |
|
28.03.2017, 11:32 |
13 |
Кстати.. а ни кто не обращал внимания на битность java??.. она там давно 64-х битная? Биность Java равна битности клиента/сервера — всегда так было. — Добавлено 29 мар 2017. Первое сообщение размещено 29 мар 2017 —
сабж ругается на открытие БД, в кот. есть Database Script кто с таким сталкивался? — Добавлено 29 мар 2017. Первое сообщение размещено 29 мар 2017 — Нашел вот что. Если вы что-то отлаживали в дебагере, а потом его отключили, то для повторного включения дебагера надо перезапустить дизайнер. Иначе галочка в меню «Debug Lotus Script» включается и выключается, но ничего не происходит. 0 |
0 / 0 / 0 Регистрация: 07.04.2014 Сообщений: 633 |
|
28.03.2017, 11:46 |
14 |
… что-то отлаживали в дебагере, а потом его отключили, то для… — ХЗ, у меня этого ничего нет. Дебажу и ничего не перезапускаю. Всё происходит )) 0 |
0 / 0 / 0 Регистрация: 23.08.2008 Сообщений: 6,252 |
|
28.03.2017, 12:36 |
15 |
Нашел вот что. Если вы что-то отлаживали в дебагере, а потом его отключили, то для повторного включения дебагера надо перезапустить дизайнер я ничего не дебажу 0 |
0 / 0 / 0 Регистрация: 07.02.2106 Сообщений: 812 |
|
28.03.2017, 12:48 |
16 |
я ничего не дебажу Про это я уже «говорил» выше — надо запустить дизайнер без клиента и тогда нет никаких ошибок. Был такой же глюк в FP1, потом починили, а сейчас вернули назад. — Добавлено 29 мар 2017. Первое сообщение размещено 29 мар 2017 —
— ХЗ, у меня этого ничего нет. Дебажу и ничего не перезапускаю. Всё происходит )) А у меня такая штука — если остановить дебагер «не дойдя до конца кода» в процессе отладки, где-то посередине кода, то второй раз он не стартует без перезапуска дизайнера. 0 |
0 / 0 / 0 Регистрация: 23.08.2008 Сообщений: 6,252 |
|
28.03.2017, 13:19 |
17 |
Про это я уже «говорил» выше — надо запустить дизайнер без клиента и тогда нет никаких ошибок. Был такой же глюк в FP1, потом починили, а сейчас вернули назад. я вовсе не запускаю дизайнер… 0 |
0 / 0 / 0 Регистрация: 07.02.2106 Сообщений: 812 |
|
28.03.2017, 13:41 |
18 |
я вовсе не запускаю дизайнер… А если запустить и перекомпилировать этот код и больше его потом не трогать? 0 |
0 / 0 / 0 Регистрация: 23.08.2008 Сообщений: 6,252 |
|
28.03.2017, 14:48 |
19 |
А если запустить и перекомпилировать этот код и больше его потом не трогать? дык первый пост о том — что джава тулинг вис на старте дизигнера 0 |
In order to resolve your issue you would need to recompile the script (what is automatically done when saving it in the Designer- Client) and then programmatically sign it (what is only possible using the C-API). Calling a «ComputeWithForm» on a Design- Element does NOT recompile the script.
Rather than fixing something that should not be broken, I would rather investigate why this agent stops running.
Usually this happens, when the designer- task «merges» script- libraries / agents from different templates to one database.
I am quite sure, that the reason for your agent not working anymore is the nightly designer task. Try to take out the template- name from the «broken» database or manipulate it (add an «x» or something) so that you keep the information, but designer task does not find the corresponding template. This should fix your problem.
If you really cannot fix the problem with this approach, then try this code I found here, put it in an agent and let the user call it via another agent with ag.RunOnServer (then it runs with more rights than the user has):
'LS Recompile: Option Public Option Explicit %REM An example of using Notes API calls to recompile LotusScript. version 1.0 Julian Robichaux http://www.nsftools.com %END REM '** Notes C-API functions Declare Function OSPathNetConstruct Lib "nnotes.dll" (Byval portName As Integer, _ Byval serverName As String, Byval fileName As String, Byval pathName As String) As Integer Declare Function NSFDbOpen Lib "nnotes.dll" (Byval dbName As String, hDb As Long) As Integer Declare Function NSFDbClose Lib "nnotes.dll" (Byval hDb As Long) As Integer Declare Function NSFNoteLSCompile Lib "nnotes.dll" (Byval hDb As Long, _ Byval hNote As Long, Byval dwFlags As Long) As Integer Declare Function NSFNoteSign Lib "nnotes.dll" (Byval hNote As Long) As Integer Declare Function NSFNoteUpdate Lib "nnotes.dll" (Byval hNote As Long, _ Byval flags As Integer) As Integer Declare Function OSLoadString Lib "nnotes.dll" (Byval hModule As Long, Byval stringCode As Integer, _ Byval retBuffer As String, Byval bufferLength As Integer) As Integer '================================================================ ' Base class for working with Notes databases at the API level '================================================================ Class APIBaseClass Private db As NotesDatabase Private hDb As Long Private lastError As String Public Sub New () '** nothing to instantiate in the base class End Sub Public Sub Delete () Call CloseDatabase() End Sub Public Function OpenDatabase (db As NotesDatabase) As Integer On Error Goto processError If (hDb > 0) Then Call CloseDatabase() End If '** reset the internals Set Me.db = db lastError = "" Dim pathName As String*256 Dim result As Integer '** create a proper network path name with OSPathNetConstruct Call OSPathNetConstruct(0, db.Server, db.FilePath, pathName) '** open the database and get a handle with NSFDbOpen result = NSFDbOpen(pathName, hDb) If result = 0 Then OpenDatabase = True Else Call SetLastError("Cannot open database " & db.FilePath & " on server " & db.Server, result) End If Exit Function processError: Call SetLastError("Error opening database", 0) Exit Function End Function Public Sub CloseDatabase () On Error Resume Next If (hDb > 0) Then Call NSFDbClose(hDb) End If Set db = Nothing hDb = 0 lastError = "" End Sub Private Function SetLastError (errText As String, apiResultCode As Integer) As String If (apiResultCode <> 0) Then LastError = "API Error " & apiResultCode & ": " & GetAPIError(apiResultCode) Elseif (Err > 0) Then LastError = "Notes Error " & Err & ": " & Error$ Else LastError = "" End If If (Len(errText) > 0) Then LastError = errText & ". " & LastError End If End Function Public Function GetLastError () As String GetLastError = LastError End Function Public Function GetAPIError (errorCode As Integer) As String Dim errorString As String*256 Dim returnErrorString As String Dim resultStringLength As Long Dim errorCodeTranslated As Integer Const ERR_MASK = &H3fff Const PKG_MASK = &H3f00 Const ERRNUM_MASK = &H00ff '** mask off the top 2 bits of the errorCode that was returned; this is '** what the ERR macro in the API does errorCodeTranslated = (errorCode And ERR_MASK) '** get the error code translation using the OSLoadString API function resultStringLength = OSLoadString(0, errorCodeTranslated, errorString, Len(errorString) - 1) '** strip off the null-termination on the string before you return it If (Instr(errorString, Chr(0)) > 0) Then returnErrorString = Left$(errorString, Instr(errorString, Chr(0)) - 1) Else returnErrorString = errorString End If GetAPIError = returnErrorString End Function End Class '================================================================ ' Special subclass for recompiling a note/doc in a database '================================================================ Class LotusScriptRecompiler As APIBaseClass Public Function RecompileLSByNoteID (noteID As String) As Integer On Error Goto processError If (db Is Nothing) Then Call SetLastError("Database is not open", 0) Exit Function End If Dim doc As NotesDocument Set doc = db.GetDocumentByID(noteID) RecompileLSByNoteID = RecompileLS(doc) Exit Function processError: Call SetLastError("Error recompiling LotusScript for " & noteID, 0) Exit Function End Function Public Function RecompileLSByUNID (unid As String) As Integer On Error Goto processError If (db Is Nothing) Then Call SetLastError("Database is not open", 0) Exit Function End If Dim doc As NotesDocument Set doc = db.GetDocumentByUNID(unid) RecompileLSByUNID = RecompileLS(doc) Exit Function processError: Call SetLastError("Error recompiling LotusScript for " & unid, 0) Exit Function End Function Public Function RecompileLS (doc As NotesDocument) As Integer On Error Goto processError Dim hNote As Long Dim unid As String Dim result As Integer If (hDb = 0) Then Call SetLastError("Database is not open", 0) Exit Function Elseif (doc Is Nothing) Then Call SetLastError("Invalid document reference", 0) Exit Function End If '** super-special-secret way of getting an API handle to a NotesDocument hNote = doc.Handle unid = doc.UniversalID '** first, we compile the note result = NSFNoteLSCompile(hDb, hNote, 0) If (result <> 0) Then Call SetLastError("Cannot compile LotusScript for " & GetTitle(doc), result) Exit Function End If '** then we sign it result = NSFNoteSign(hNote) If (result <> 0) Then Call SetLastError("Cannot sign " & GetTitle(doc), result) Exit Function End If '** then we save it result = NSFNoteUpdate(hNote, 0) If (result <> 0) Then Call SetLastError("Cannot save " & GetTitle(doc), result) Exit Function End If '** update the in-memory reference to the object Delete doc Set doc = db.GetDocumentByUNID(unid) '** a little trick to avoid this message on recompiled forms: '** This document has been altered since the last time it was signed! Intentional tampering may have occurred. Call doc.Sign() Call doc.Save(True, False) lastError = "" RecompileLS = True Exit Function processError: Call SetLastError("Error recompiling LotusScript for " & GetTitle(doc), 0) Exit Function End Function Public Function GetTitle (doc As NotesDocument) As String On Error Resume Next If (doc Is Nothing) Then Exit Function End If Dim title As String title = doc.~$Title(0) If (Instr(title, "|") > 0) Then title = Strleft(title, "|") End If If (title = "") Then title = "(untitled)" End If GetTitle = |"| & title & |"| End Function End Class Sub Initialize '** As a test, let's recompile all the agents, script libraries, and forms '** in this database Dim session As New NotesSession Dim db As NotesDatabase Dim nc As NotesNoteCollection Dim recompiler As New LotusScriptRecompiler Dim noteID As String '** create our recompiler object Set db = session.CurrentDatabase Call recompiler.OpenDatabase(db) If (recompiler.GetLastError <> "") Then Print recompiler.GetLastError Exit Sub End If '** compile the script libraries first (note that this will NOT build a '** dependency tree -- rather, we'll try to brute-force around the '** dependencies by recompiling until either (A) there are no errors, '** or (B) the number of errors we get is the same as we got last time) Dim errCount As Integer, lastCount As Integer Set nc = db.CreateNoteCollection(False) nc.SelectScriptLibraries = True Call nc.BuildCollection Print "SCRIPT LIBRARIES" Do lastCount = errCount errCount = 0 noteID = nc.GetFirstNoteId Do Until (noteID = "") If recompiler.RecompileLSByNoteID(noteID) Then Print "Successfully recompiled " & _ recompiler.GetTitle(db.GetDocumentByID(noteID)) Else Print recompiler.GetLastError errCount = errCount + 1 End If noteID = nc.GetNextNoteId(noteID) Loop Loop Until ( (errCount = 0) Or (errCount = lastCount) ) '** then compile everything else Set nc = db.CreateNoteCollection(False) nc.SelectAgents = True nc.SelectForms = True Call nc.BuildCollection Print "FORMS AND AGENTS" noteID = nc.GetFirstNoteId Do Until (noteID = "") If recompiler.RecompileLSByNoteID(noteID) Then Print "Successfully recompiled " & _ recompiler.GetTitle(db.GetDocumentByID(noteID)) Else Print recompiler.GetLastError End If noteID = nc.GetNextNoteId(noteID) Loop Call recompiler.CloseDatabase() Print "All done" End Sub
lmike
нет, пердело совершенство
-
#1
сабж
при открытии любой БД пишет рефрешинг и на этом виснет
ругается на открытие БД, в кот. есть Database Script
—————————
IBM Notes
—————————
Error loading USE or USELSX module: *javacon
—————————
ОК
—————————
кто с таким сталкивался?
-
#2
Не сталкивался.. потому как java наверное не пользую..
-
#3
Не сталкивался. Есть и дбскрипт и джавабибл. Почистить что-ть?
lmike
нет, пердело совершенство
-
#4
Не сталкивался. Есть и дбскрипт и джавабибл. Почистить что-ть?
есть код, кот. использует общую либу (обработка ошибок), в ней обработчик ошибок java
вопрос — почему дизайнер виснет, с ошибкой-то кода я могу «справиться»
-
#5
поставил fp8 на рабочую машинку.. появилась вот такая бяда..
кто подскажет что сделать?))
lmike
нет, пердело совершенство
-
#6
@swyatogor судя про трейсу — нет путей к либам, при сборке
у меня сильное подозрение — изменения жвм на версию 1.8 имеют неприятные последствия для java проектов
даже для уже скомпиированных
для себя я решил погодить использовать — ибо не знаю деталей и решений
-
#7
поставил fp8 на рабочую машинку.. появилась вот такая бяда..
Посмотреть вложение 9534
кто подскажет что сделать?))
Посмотрите в свойствах проекта какую jvm он использует, есть ли она у вас в наличии.
[doublepost=1490596157,1490595948][/doublepost]
@swyatogor судя про трейсу — нет путей к либам, при сборке
у меня сильное подозрение — изменения жвм на версию 1.8 имеют неприятные последствия для java проектов
даже для уже скомпиированных
для себя я решил погодить использовать — ибо не знаю деталей и решений
Под 1.8 запускается только клиент, дизайнер по прежнему использует 1.6 из папки jvm1.6, проблемы могут быть только с новыми путями к этой jvm и внешним библиотеками из jvm/lib/ext, если вы забыли их положить ещё и в jvm1.6/lib/ext.
-
#8
не стал ломать голову что и как там настраивается.. снес нафиг лотус и поставил старую версию которая была..и всё заворкало
lmike
нет, пердело совершенство
-
#10
и внешним библиотеками из jvm/lib/ext, если вы забыли их положить ещё и в jvm1.6/lib/ext.
выше описывал траблу — до перкладывания даже не дохдит
и при старте БД не работает LS2J инициализация
-
#11
выше описывал траблу — до перкладывания даже не дохдит
и при старте БД не работает LS2J инициализация
Ну, тут я даже и не знаю… по-моему это уже как-то ломали раньше в очередном фикс-паке, потом починили… ну, теперь снова. Всё идёт по индусскому плану.
Такая же проблема была после FP1 и решается она так же, как и тогда — надо запустить дизайнер без клиента.
Последнее редактирование: 27.03.2017
-
#12
Кстати.. а ни кто не обращал внимания на битность java??.. она там давно 64-х битная?
-
#13
Кстати.. а ни кто не обращал внимания на битность java??.. она там давно 64-х битная?
Биность Java равна битности клиента/сервера — всегда так было.
[doublepost=1490779184,1490779123][/doublepost]
сабж
при открытии любой БД пишет рефрешинг и на этом виснет
Посмотреть вложение 9423
ругается на открытие БД, в кот. есть Database Script
—————————
IBM Notes
—————————
Error loading USE or USELSX module: *javacon
—————————
ОК
—————————кто с таким сталкивался?
[doublepost=1490779123,1490779025][/doublepost]Нашел вот что. Если вы что-то отлаживали в дебагере, а потом его отключили, то для повторного включения дебагера надо перезапустить дизайнер. Иначе галочка в меню «Debug Lotus Script» включается и выключается, но ничего не происходит.
-
#14
… что-то отлаживали в дебагере, а потом его отключили, то для…
— ХЗ, у меня этого ничего нет. Дебажу и ничего не перезапускаю. Всё происходит ))
ток, если дебажится форма, к примеру, галку надо ставит ДО её открытия (т.е. переоткрыть ЕЁ есличо). ну и всего остального эт тож касается
lmike
нет, пердело совершенство
-
#15
Нашел вот что. Если вы что-то отлаживали в дебагере, а потом его отключили, то для повторного включения дебагера надо перезапустить дизайнер
я ничего не дебажу
есть БД, в кот. класс «работы» с ошибками java, вызываемой из LS (LS2J)
в скрипте БД, либа (с классом) подключается
при открытии БД — ловим ошибку
-
#16
я ничего не дебажу
есть БД, в кот. класс «работы» с ошибками java, вызываемой из LS (LS2J)
в скрипте БД, либа (с классом) подключается
при открытии БД — ловим ошибку
Про это я уже «говорил» выше — надо запустить дизайнер без клиента и тогда нет никаких ошибок. Был такой же глюк в FP1, потом починили, а сейчас вернули назад.
[doublepost=1490783750,1490783564][/doublepost]
— ХЗ, у меня этого ничего нет. Дебажу и ничего не перезапускаю. Всё происходит ))
ток, если дебажится форма, к примеру, галку надо ставит ДО её открытия (т.е. переоткрыть ЕЁ есличо). ну и всего остального эт тож касается
А у меня такая штука — если остановить дебагер «не дойдя до конца кода» в процессе отладки, где-то посередине кода, то второй раз он не стартует без перезапуска дизайнера.
lmike
нет, пердело совершенство
-
#17
Про это я уже «говорил» выше — надо запустить дизайнер без клиента и тогда нет никаких ошибок. Был такой же глюк в FP1, потом починили, а сейчас вернули назад.
я вовсе не запускаю дизайнер…
-
#18
я вовсе не запускаю дизайнер…
А если запустить и перекомпилировать этот код и больше его потом не трогать?
lmike
нет, пердело совершенство
-
#19
А если запустить и перекомпилировать этот код и больше его потом не трогать?
дык первый пост о том — что джава тулинг вис на старте дизигнера
-
#20
@lmike
Как решил?
У меня сейчас похожая проблема.
При первом старте Дизайнера долго отрабатывает инициализация Java Tooling, но процесс прекращается, и вроде всё нормально, но нет — все библиотеки, в которых есть строка ‘UseLSX «*javacon»‘ Дизайнер отображает с красным крестом. Если зайти внутрь библиотеки, то на этой строке красным подчёркнуто и подсказка «Error loading USE or USELSX module: *javacon».
Hi,
i am getting this error on some PC s and not in others for the same database.
— PCs have same lotus version (5.0.11)
— Database is at Server
— The library with the loading error is a custom library where i have all the LotusScript funcionality
— The code is called from an Agent
The only diference between them is that i have Lotus Designer installed. The problem goes out if i install it.
That’s not a solution.
Somebody could help me?
Thanks in advance
Lotus IBM
Experts Exchange is like having an extremely knowledgeable team sitting and waiting for your call. Couldn’t do my job half as well as I do without it!
Unlimited question asking, solutions, articles and more.
Your help has saved me hundreds of hours of internet surfing.
fblack61
Unlimited question asking, solutions, articles and more.
Experts Exchange has (a) saved my job multiple times, (b) saved me hours, days, and even weeks of work, and often (c) makes me look like a superhero! This place is MAGIC!
Walt Forbes
Unlimited question asking, solutions, articles and more.
This is the best money I have ever spent. I cannot not tell you how many times these folks have saved my bacon. I learn so much from the contributors.
rwheeler23
Unlimited question asking, solutions, articles and more.
All of life is about relationships, and EE has made a viirtual community a real community. It lifts everyone’s boat
William Peck
Unlimited question asking, solutions, articles and more.
Not exactly the question you had in mind?
Sign up for an EE membership and get your own personalized solution. With an EE membership, you can ask unlimited troubleshooting, research, or opinion questions.
ask a question
I have one Notes client that gets this message multiple times everytime opening a view.
Notes client is version 9 swedish and it has just been installed into a new computer.
The view do contain calls to Scriptlibraries and maybe also to some java code from complied code, (swingsoftware)
The strange thing is that the views work fine on all other computers running the same windows and Notes versions.
The obvious answer here would be to reinstall the client but that is not currently an option.
Looking in the java console I can see references to security errors. ( see image )
anyone have any tips for resolving this issue?
!]3
In order to resolve your issue you would need to recompile the script (what is automatically done when saving it in the Designer- Client) and then programmatically sign it (what is only possible using the C-API). Calling a «ComputeWithForm» on a Design- Element does NOT recompile the script.
Rather than fixing something that should not be broken, I would rather investigate why this agent stops running.
Usually this happens, when the designer- task «merges» script- libraries / agents from different templates to one database.
I am quite sure, that the reason for your agent not working anymore is the nightly designer task. Try to take out the template- name from the «broken» database or manipulate it (add an «x» or something) so that you keep the information, but designer task does not find the corresponding template. This should fix your problem.
If you really cannot fix the problem with this approach, then try this code I found here, put it in an agent and let the user call it via another agent with ag.RunOnServer (then it runs with more rights than the user has):
'LS Recompile:
Option Public
Option Explicit
%REM
An example of using Notes API calls to recompile LotusScript.
version 1.0
Julian Robichaux
http://www.nsftools.com
%END REM
'** Notes C-API functions
Declare Function OSPathNetConstruct Lib "nnotes.dll" (Byval portName As Integer, _
Byval serverName As String, Byval fileName As String, Byval pathName As String) As Integer
Declare Function NSFDbOpen Lib "nnotes.dll" (Byval dbName As String, hDb As Long) As Integer
Declare Function NSFDbClose Lib "nnotes.dll" (Byval hDb As Long) As Integer
Declare Function NSFNoteLSCompile Lib "nnotes.dll" (Byval hDb As Long, _
Byval hNote As Long, Byval dwFlags As Long) As Integer
Declare Function NSFNoteSign Lib "nnotes.dll" (Byval hNote As Long) As Integer
Declare Function NSFNoteUpdate Lib "nnotes.dll" (Byval hNote As Long, _
Byval flags As Integer) As Integer
Declare Function OSLoadString Lib "nnotes.dll" (Byval hModule As Long, Byval stringCode As Integer, _
Byval retBuffer As String, Byval bufferLength As Integer) As Integer
'================================================================
' Base class for working with Notes databases at the API level
'================================================================
Class APIBaseClass
Private db As NotesDatabase
Private hDb As Long
Private lastError As String
Public Sub New ()
'** nothing to instantiate in the base class
End Sub
Public Sub Delete ()
Call CloseDatabase()
End Sub
Public Function OpenDatabase (db As NotesDatabase) As Integer
On Error Goto processError
If (hDb > 0) Then
Call CloseDatabase()
End If
'** reset the internals
Set Me.db = db
lastError = ""
Dim pathName As String*256
Dim result As Integer
'** create a proper network path name with OSPathNetConstruct
Call OSPathNetConstruct(0, db.Server, db.FilePath, pathName)
'** open the database and get a handle with NSFDbOpen
result = NSFDbOpen(pathName, hDb)
If result = 0 Then
OpenDatabase = True
Else
Call SetLastError("Cannot open database " & db.FilePath & " on server " & db.Server, result)
End If
Exit Function
processError:
Call SetLastError("Error opening database", 0)
Exit Function
End Function
Public Sub CloseDatabase ()
On Error Resume Next
If (hDb > 0) Then
Call NSFDbClose(hDb)
End If
Set db = Nothing
hDb = 0
lastError = ""
End Sub
Private Function SetLastError (errText As String, apiResultCode As Integer) As String
If (apiResultCode <> 0) Then
LastError = "API Error " & apiResultCode & ": " & GetAPIError(apiResultCode)
Elseif (Err > 0) Then
LastError = "Notes Error " & Err & ": " & Error$
Else
LastError = ""
End If
If (Len(errText) > 0) Then
LastError = errText & ". " & LastError
End If
End Function
Public Function GetLastError () As String
GetLastError = LastError
End Function
Public Function GetAPIError (errorCode As Integer) As String
Dim errorString As String*256
Dim returnErrorString As String
Dim resultStringLength As Long
Dim errorCodeTranslated As Integer
Const ERR_MASK = &H3fff
Const PKG_MASK = &H3f00
Const ERRNUM_MASK = &H00ff
'** mask off the top 2 bits of the errorCode that was returned; this is
'** what the ERR macro in the API does
errorCodeTranslated = (errorCode And ERR_MASK)
'** get the error code translation using the OSLoadString API function
resultStringLength = OSLoadString(0, errorCodeTranslated, errorString, Len(errorString) - 1)
'** strip off the null-termination on the string before you return it
If (Instr(errorString, Chr(0)) > 0) Then
returnErrorString = Left$(errorString, Instr(errorString, Chr(0)) - 1)
Else
returnErrorString = errorString
End If
GetAPIError = returnErrorString
End Function
End Class
'================================================================
' Special subclass for recompiling a note/doc in a database
'================================================================
Class LotusScriptRecompiler As APIBaseClass
Public Function RecompileLSByNoteID (noteID As String) As Integer
On Error Goto processError
If (db Is Nothing) Then
Call SetLastError("Database is not open", 0)
Exit Function
End If
Dim doc As NotesDocument
Set doc = db.GetDocumentByID(noteID)
RecompileLSByNoteID = RecompileLS(doc)
Exit Function
processError:
Call SetLastError("Error recompiling LotusScript for " & noteID, 0)
Exit Function
End Function
Public Function RecompileLSByUNID (unid As String) As Integer
On Error Goto processError
If (db Is Nothing) Then
Call SetLastError("Database is not open", 0)
Exit Function
End If
Dim doc As NotesDocument
Set doc = db.GetDocumentByUNID(unid)
RecompileLSByUNID = RecompileLS(doc)
Exit Function
processError:
Call SetLastError("Error recompiling LotusScript for " & unid, 0)
Exit Function
End Function
Public Function RecompileLS (doc As NotesDocument) As Integer
On Error Goto processError
Dim hNote As Long
Dim unid As String
Dim result As Integer
If (hDb = 0) Then
Call SetLastError("Database is not open", 0)
Exit Function
Elseif (doc Is Nothing) Then
Call SetLastError("Invalid document reference", 0)
Exit Function
End If
'** super-special-secret way of getting an API handle to a NotesDocument
hNote = doc.Handle
unid = doc.UniversalID
'** first, we compile the note
result = NSFNoteLSCompile(hDb, hNote, 0)
If (result <> 0) Then
Call SetLastError("Cannot compile LotusScript for " & GetTitle(doc), result)
Exit Function
End If
'** then we sign it
result = NSFNoteSign(hNote)
If (result <> 0) Then
Call SetLastError("Cannot sign " & GetTitle(doc), result)
Exit Function
End If
'** then we save it
result = NSFNoteUpdate(hNote, 0)
If (result <> 0) Then
Call SetLastError("Cannot save " & GetTitle(doc), result)
Exit Function
End If
'** update the in-memory reference to the object
Delete doc
Set doc = db.GetDocumentByUNID(unid)
'** a little trick to avoid this message on recompiled forms:
'** This document has been altered since the last time it was signed! Intentional tampering may have occurred.
Call doc.Sign()
Call doc.Save(True, False)
lastError = ""
RecompileLS = True
Exit Function
processError:
Call SetLastError("Error recompiling LotusScript for " & GetTitle(doc), 0)
Exit Function
End Function
Public Function GetTitle (doc As NotesDocument) As String
On Error Resume Next
If (doc Is Nothing) Then
Exit Function
End If
Dim title As String
title = doc.~$Title(0)
If (Instr(title, "|") > 0) Then
title = Strleft(title, "|")
End If
If (title = "") Then
title = "(untitled)"
End If
GetTitle = |"| & title & |"|
End Function
End Class
Sub Initialize
'** As a test, let's recompile all the agents, script libraries, and forms
'** in this database
Dim session As New NotesSession
Dim db As NotesDatabase
Dim nc As NotesNoteCollection
Dim recompiler As New LotusScriptRecompiler
Dim noteID As String
'** create our recompiler object
Set db = session.CurrentDatabase
Call recompiler.OpenDatabase(db)
If (recompiler.GetLastError <> "") Then
Print recompiler.GetLastError
Exit Sub
End If
'** compile the script libraries first (note that this will NOT build a
'** dependency tree -- rather, we'll try to brute-force around the
'** dependencies by recompiling until either (A) there are no errors,
'** or (B) the number of errors we get is the same as we got last time)
Dim errCount As Integer, lastCount As Integer
Set nc = db.CreateNoteCollection(False)
nc.SelectScriptLibraries = True
Call nc.BuildCollection
Print "SCRIPT LIBRARIES"
Do
lastCount = errCount
errCount = 0
noteID = nc.GetFirstNoteId
Do Until (noteID = "")
If recompiler.RecompileLSByNoteID(noteID) Then
Print "Successfully recompiled " & _
recompiler.GetTitle(db.GetDocumentByID(noteID))
Else
Print recompiler.GetLastError
errCount = errCount + 1
End If
noteID = nc.GetNextNoteId(noteID)
Loop
Loop Until ( (errCount = 0) Or (errCount = lastCount) )
'** then compile everything else
Set nc = db.CreateNoteCollection(False)
nc.SelectAgents = True
nc.SelectForms = True
Call nc.BuildCollection
Print "FORMS AND AGENTS"
noteID = nc.GetFirstNoteId
Do Until (noteID = "")
If recompiler.RecompileLSByNoteID(noteID) Then
Print "Successfully recompiled " & _
recompiler.GetTitle(db.GetDocumentByID(noteID))
Else
Print recompiler.GetLastError
End If
noteID = nc.GetNextNoteId(noteID)
Loop
Call recompiler.CloseDatabase()
Print "All done"
End Sub
For a week, I was trying to solve a problem with an old database. The problem was a well-known error message: «Error loading USE or USELSX module» in my agents and script libraries.
This case, I couldn’t update my agents, script libraries, etc. because my designer wasn’t compiling due to this error.
So after hours of try and error, I noticed that I didn’t test one thing I should have tested at the beginning. My friends guess what I’m talking about
If there is Java, you’re living in Turkey, you should check «i» character first!
I did and found the problem. I can reproduce the problem and have opened PMR report. Now I won’t share the exact steps but show the screen shots.
Before, I should tell you that this case is valid for new Lotusscript Editor and Turkish Language in Regional Settings. But there are similar accented character problems in other languages. Therefore use your creativity to find another bug in your language
We have two script libraries:
Now we are opening TestLib02 and connect it to TestLib01. But oops!
Very funny, right?
Suppose we have created this application before. We can’t modify any code in the library, because it wouldn’t compile.
There are two workarounds:
1. Use Uppercase.
2. Disable new Lotusscript editor… This is not happenning in old editor.
What is the implication of this problem?
It also solves the famous «Lotus Workflow is not working on 8.5.x» problem of Turkish customers. Many of my customers mentioned about this problem.
Moreover, this is just a simple case. The lesson of the day is; For any unresolved problems in DDE, if the subject of the problem contains «case insensitivity», the issue is «i» character for Turkish customers.
Expecting your comments about any findings in other languages.