This document contains a subset of known problems, workarounds and tips for JBuilder 2005.
General
Installation and Registration
Optimizeit Tools
Web Services
Enterprise JavaBeans (EJB)
Web Development
Team Development
Mobile Development
XML
Debugger
Designer
OpenTools
New Features and Fixes in JDataStore 7.01
Unix
Macintosh
Samples
Performance
International
Documentation
Copyrights, conditions and disclaimers
For the latest JBuilder FAQs and Technical Information Notes (TIs), please visit:
For updates and service packs for the Java Development Kit (JDK), see: http://java.sun.com/j2se/.
jbuildern/lib/ext
directory into your new JBuilder2005/lib/ext
directory. This can cause problems with the current version of JBuilder. Instead, use the Import Settings wizard (Tools|Import Settings). The wizard automatically runs the first time you launch JBuilder 2005 if a previous installation is found. Or, reset these configurations by choosing Enterprise|Configure Servers or Enterprise|Enterprise Setup|Database Drivers.Some of the changes in JBuilder 2005 make it extremely inconvenient to share the default configuration directory from previous versions of JBuilder (.jbuildern
, where n is the version number of JBuilder) with an installation of JBuilder 2005. As a service to our customers, we put the settings for JBuilder 2005 in a new directory, .jbuilder2005
.
Note: JBuilder 2005 shares the following directories with previous versions of JBuilder:
.dbpilot
You can change the location where JBuilder looks for your .jbuildern
directory by adding the following entry to the jbuilder.config
file:
vmparam -Djbuilder.home=path to the parent directory for .jbuilder-dir
where .jbuilder-dir is the name of your alternate home directory.
Note: Do not place quotation marks around the values you add to your jbuilder.config
file, even if they contain spaces. Doing so will generate a parsing error.
.jpx
) file is marked dirty and all other runtime configurations are wiped out.
setup_windows.html
setup_linux.html
setup_solaris.html
setup_mac.html
It is very important to follow those directions.
If you encounter problems installing your copy of JBuilder, please refer to "Troubleshooting" for additional information.
If you encounter problems registering your copy of JBuilder, please refer to the "Troubleshooting" section of Registering JBuilder.
If you install both JBuilder 2005 Enterprise Edition and JBuilder 2005 Developer Edition (usually done for demonstration purposes) and also install Borland Enterprise Server in both cases, Borland Enterprise Server will not function due to conflicting licenses. To make Borland Enterprise Server work in this situation, do not install Borland Enterprise Server with either JBuilder Edition. Instead, download and install a trial version of Borland Enterprise Server 6.0RP1; this version can be used by both JBuilder editions.
This configuration is not currently supported, as there is no user-based license available for Op-Center. Until this is available, download and install a trial version of Borland Enterprise Server 6.0RP1, then apply both the Borland Enterprise Server 6.0 Trial license and an Op-Center Trial (or Production) license.
This requires that a configuration file be modified, and the Borland Enterprise Server management agent be restarted. A procedure for this upgrade will be available on the Borland Enterprise Server FAQ site at http://info.borland.com/devsupport/bes/faq/6.0/index.html.
To install JBuilder without using the GUI installer:
USER_INSTALL_DIR=drive:$/$Borland$/$JBuilder2005 INSTALLER_UI=silent
USER_INSTALL_DIR=$/$opt$/$Borland$/$JBuilder2005 INSTALLER_UI=silent
This file uses $/$
as a platform-independent separator.
ent_install -f <filename>
(example: ent_install -f c:\temp\installer.properties
)./ent_install.bin -f <filename>
(example: ./ent_install.bin -f ./temp/installer.properties
)Solution: The Linux kernel has problems with a few motherboard/BIOS not reporting total memory available. To check that all installed memory is being recognized, type the following at a shell prompt:
cat /proc/meminfo
the output will include a line looking like:
MemTotal: ######## kB
where "########" should equal the amount of memory your computer has. If it doesn't, you'll need to explicitly tell the kernel by editing the file /etc/lilo.conf
.
Details for doing this can be found at: http://www.redhat.com/support/docs/faqs/rhl_general_faq/FAQ-7.html
To uninstall JBuilder 2005, run the following from the Uninstallxxxxxxx directory (where xxxxxxx is the name of the JBuilder edition you installed) under the directory where you installed JBuilder 2005:
Uninstallxxxxxxx\Uninstallxxxxxxx.exe
.Uninstallxxxxxxx
Uninstallxxxxxxx
Uninstallxxxxxxx/Uninstallxxxxxxx
usr/local/bin
directory.JBuilder/lib
directory:
admintool.jar
gantry-common.jar
sbtoolbar.jar
servers
ss.jar
starteam-extensions.jar
starteam-gui.jar
starteam60.jar
streplicate.jar
Borland JBuilder Enterprise Install: javaw.exe - Wrong Volume The wrong volume is in the drive. Please insert the volume JBuilder into the drive:Workaround: This error does not affect your installation of either JBuilder or Borland Enterprise Server. If the error dialog persists even after you have clicked Cancel several times, try the following:
install_windows.exe
process.dtfile
(typically in /usr/dt/bin
) is in your PATH.netscape
(typically in /opt/NSCPcom
) is in your PATH.Optimizeit includes a Troubleshooting Guide that answers frequently asked questions about Optimizeit installation and configuration. These are some additional issues not covered in the Troubleshooting Guide. They are sorted by platform and JDK.
Optimizeit Request Analyzer could not find the directory where it was installed. Please perform the integration with JBuilder from Optimizeit again. Optimizeit Error: failed to find Request Analyzer classRequest Analyzer is not supported on the Macintosh.
-Dccoverage.classpath=
to the java invocation, or by increasing the minimum heap size to a bigger value using the -Xms256M
startup command parameter (where 256 is an example of the minimum size, in megabytes).oldjava
command does not recognize German characters in a class name.findfast.exe
. This program can be manually disabled from your control panel.<jbuilder>/OptimizeitSuite
directory. Instead, you must start Progress Tracker and Filter Editor from within the JBuilder IDE. To start Progress Tracker from within JBuilder, choose Progress Tracker from the Tools menu. To start Filter Editor from with JBuilder, click the Edit Filter button on the Optimize page of the Edit Runtime Configurations dialog box (Run|Optimize Project).main
method of the application you want to profile be public. Attempting to profile classes with private or protected main
methods will now result in a ClassNotFoundException
being thrown.server.xml
file (the default option) when testing servlets on Tomcat, the temporary directory path must not contain any high-ASCII characters. Otherwise, Tomcat will fail to parse the generated server8080.xml
file.export LD_LIBRARY_PATH=<together_dir>/bin:<together_dir>/lib:$LD_LIBRARY_PATH
Enter the following commands at the command prompt:
cd /tools/ws-test-tools/java/bin dos2unix Analyzer.sh dos2unix Monitor.sh chmod +r+x Analyzer.sh Monitor.sh
cd /tools/ws-test-tools/java/bin dos2unix Monitor.sh temp.sh mv temp.sh Monitor.sh dos2unix Analyzer.sh temp.sh mv temp.sh Analyzer.sh chmod +r+x Analyzer.sh Monitor.sh
Analyzer.sh
and Monitor.sh
in ws-test-tools/java/bin
.#! /bin/sh
native2ascii Monitor.sh temp.sh mv temp.sh Monitor.sh native2ascii Analyzer.sh temp.sh mv temp.sh Analyzer.sh
chmod +r+x Analyzer.sh Monitor.sh
server.xml
file in the JBoss deploy directory to point to a different port, such as 8090.build_WebLogic.xml
.servicegen
element by adding the following attribute:
overwrite="false"
-Dvbroker.agent.port=<smart agent port> -Dborland.enterprise.licenseDir=<USER_HOME> -Dborland.enterprise.licenseDefaultDir=<BES_install>/licensewhere
USER_HOME
is the default location of the Borland license directory (.borland
). If this is different from the default license directory, replace it with the directory where Borland license information is stored.Correcting a CMP 1.1 Bean using the Inspector
Correcting a CMP 1.1 bean using EJB verification
Using the diagram toolbar to create a CMP bean
hosts
file.
127.0.0.1 localhostThe
hosts
file is located in:
WINDOWS_HOME/system32/drivers/etc
/etc/
.java
file with a name containing extended characters.
ClassCastException
s are thrown.
This does seem to happen when running the server from the command line. These exceptions do not seem to affect any functionality.When running a JSP or servlet using JBuilder's internal web browser, the initial time to compile the JSP may cause the server to respond too slowly for the internal browser's time-out value. The server will close the connection and the page will render blank in the Web View. One or two repeated attempts to load the page by hitting Refresh or by placing keyboard focus on the URL field and hitting Enter should load the page. Alternatively, the JSP or servlet can be viewed in an external browser. Typically, an external browser has a generous time-out value that can be configured.
jasper-compiler.jar
and jasper-runtime.jar
from your Tomcat 4.0 installation (TOMCAT_HOME/lib
) to the Tomcat 4.1 installation (TOMCAT_HOME/common/lib
).addbootpath ../lib/lawt.jar
in your bin/jbuilder.config
file.jar
extension. Or, see if an archive with the JAR extension is available.cactus.properties
file is generated with an incorrect port in the following cases:
Workaround:
cactus.properties
in your test directory (test path in the Project Properties dialog, Paths page), then edit the cactus.contextURL
property, adding the correct port number. You will have to rebuild the project after doing this.To take full advantage of CVS capabilities in JBuilder, it is recommended that you use the version of CVS that is installed with JBuilder or later.
For projects that are under version control, it is recommended you do not use "New Folder" feature from the Project Pane. It is better to organize your project using JBuilder's automatic source package discovery, or by choosing Add Files/Packages.
bin
directory, rename the file cvs95.exe
to cvs.exe
.starteam-extensions.jar
from the installation directory to your JBuilder lib
directory. See the StarTeam Extensions 6.0 readme
file for more information.SS.EXE
using the Windows Task Manager. If you have to do this, the JBuilder integration with Visual SourceSafe will no longer be functional until the application is restarted.Mobile development is a feature of JBuilder Developer, JBuilder Enterprise, and JBuilder Mobile Edition. It provides support for UEI compatible J2ME JDKs, plus the specific vendors listed below. For information on downloading and installing JDKs for mobile development in JBuilder, see "Mobile Development: Installation and setup."
If transformation of your XML document fails, check to see if you are using the correct version of the stylesheet specification, http://www.w3.org/1999/XSL/Transform, and not the working draft.
Castor now requires 2001 schema support, <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
. If an older version is used, an error or exception might occur. The Castor sample has been updated: <JB_HOME>/samples/tutorials/XML/databinding/fromSchema/Castor.jpx
. The same is true for XML schema validation. You can find the latest Xerces schema samples with 2001 schema support in <JB_HOME>/extras/xerces/data/
.
partition.xml
file (example location: \BES\var\domains\base\configurations\jbuilder\mos\jbpartition\adm\properties\partition.xml
), add "org.apache.xerces,org.w3c.dom,javax.xml,org.xml.sax,org.xml.dom" to the container prefixes so the container element looks like this:
<container system.classload.prefixes="java.,javax.ejb.,!javax.servlet.jsp.jstl.,javax.servlet.,javax.jms.,org.apache.log4j.,org.apache.xerces,org.w3c.dom,javax.xml,org.xml.sax,org.xml.dom" verify.on.load="true" classloader.policy="per_module" classloader.classpath="lib/app;${install.root}/lib/tomcat/jasper/jasper-compiler.jar;${install.root}/lib/tomcat/jasper/jasper-runtime.jar" use.validating.parser="true"/>
xalan.jar
, xerces.jar
, and xml-apis.jar
) into the <tomcat home>/common/endorsed
subdirectory.When attaching to a process running on a remote computer, the default address has changed from 5000 to 3999.
To view this change,
The port number/address that you set in this field should match the address parameter that you use when you run your program from the command line on the remote computer.
If you are running Windows XP, do not use 5000 as the port number/address through which the debugger communicates with a remote computer. Windows XP reserves this port for the Universal Plug & Play.
-classic
option as the first VM parameter in the runtime configurations for your project before you debug. Note that JBuilder will do this by default as appropriate for these JDKs.classic
parameter will be automatically added to the debug command line when using this JDK in your project. JBuilder tries to default this checkbox appropriately. If the JDK is one that does not support a classic VM, this option will not be selected.dt_shmem.dll
in the JDK. This DLL is used as an implementation of the debugging protocol on Windows (used in communication between the debugger and debuggee), and causes intermittent problems. To avoid using this DLL, remove it from any JDKs you are planning to use for debugging, and make sure that any directories that contain this DLL do not appear on your system PATH. If you do this, the alternate dt_socket.dll
will be used for the debugging protocol. This DLL does not appear to have the problems of dt_shmem.dll
.<JB_HOME>
contains international characters (entered during installation). Debugging a new project whose files are stored in a directory with international characters also fails.
<JDK_HOME>\jdk1.4
to <JDK_HOME>jdk1.4\jre
.<JDK_HOME>\jdk1.4\jre\bin\dtshmem*
and <JDK_HOME>\jdk1.4\jre\bin\148
dt_socket*
to <JDK_HOME>\jdk1.4\bin
, then run the debugger with the J2SE installation path in your debugger set to the value: <JDK_HOME>\jdk1.4
.sun.io.MalformedInputException
in sun.io.CharToByteSingleByte.convert()
is thrown.
JB_HOME/jdk1.4/jre/lib/font.properties
and insert a "#" at the beginning of every line that contains the string "symbol".-classic
option as the first VM parameter in the runtime configurations for your project when debugging.The Designer supports code generated by VisualAge (versions 3 and 4). You can view the source files generated by VisualAge, and use the Designer with these source files without having to modify them in any way. Use the Designer to add additional components, copy and paste, move components between containers, move to first, move to last, and change their properties and constraints.
this
extending an abstract classWhen JBuilder needs to instantiate an object to be the this
object, it can't instantiate the object you're designing. To circumvent this problem, JBuilder instantiates the superclass of the this
object. If the superclass is abstract, it can't be instantiated. It's necessary to provide a concrete proxy class.
You can add your own proxy objects in the user.properties
file. The syntax is
designer;proxy.<fully qualified name of abstract class>=<fully qualified name of concrete class to be used as proxy>
For example,
designer;proxy.java.awt.Component=com.borland.jbuilder.designer.dt.ComponentProxy
The proxy class must
public
constructor.Warning: Generally, it's very strongly recommended that you avoid altering the user.properties
file. If you must alter it, save the original version first, as a backup.
For more information on red beans and their causes, see "Handling red beans" in the "Advanced topics" chapter of Designing Applications with JBuilder.
java.lang.ClassNotFoundException: javax.ejb.EJBObject createDefaultPropertyEditor(javax.ejb.EJBObject)
in the Message pane. The Message pane now cannot be closed, not even by Ctrl-Alt-M.If certain calls to the Open Tools API Browser class are made from within the jbInit()
method of a class being designed by the UI Designer, JBuilder will exhibit strange repainting and response issues. The calls that definitely exhibit this behavior include:
Browser.findBrowser()
Browser.getActiveBrowser()
Browser.getBrowsers()
Browser.getBrowsersNonZ()
The solution is to move these calls outside of the class's jbInit()
method into another method, such as the constructor.
These Release Notes provide a brief description of each new feature in JDataStore 7. The JDataStore Developer's Guide includes a "What's New" chapter that provides links to the documentation for each new feature within the Developer's Guide.
To see bugs fixed in JDataStore 7.01 click here
The new features in JDataStore 7 include:
CREATE SCHEMA
, DROP SCHEMA
CREATE VIEW
, ALTER VIEW
, DROP VIEW
CREATE ROLE
, SET ROLE
, DROP ROLE
CASCADE
and RESTRICT
CREATE JAVA_CLASS
, DROP JAVA_CLASS
TINYINT
JDataStore 7 provides tools for creating automatic or manual incremental backups and for creating automatic failover to a mirror of the original database in case of failure. In addition, there are tools for viewing and managing connections on a remote server, for managing datasources and connections graphically or with the new ISQL feature, for viewing database status logs and transactions logs, for viewing logs, and for verifying databases.
The "High Availability Server" topic in the "Architecture" chapter of the JDataStore Developer's Guide discusses the architecture of JDataStore's new failsafe server and its associated mirroring functionality. This section is well worth reading, because it will help you make the most of this new offerings.
The asterisk following a keyword indicates that the keyword is reserved. Reserved keywords can be used as SQL identifiers only if they are enclosed in double quotation marks. When quoted in this fashion, they are case sensitive. The words that have no asterisk are nonreserved keywords. They can be used with or without double quotes and are case insensitive when note in quotes.
For a complete list of keywords, see Keywords in the "SQL Reference" chapter of the JDataStore Developer's Guide.
ADMIN*
|
LEVEL*
|
RESOLVABLE*
|
The BIT_LENGTH
function gives the length in bits of a STRING
, INPUTSTREAM
, or OBJECT
value. For more information, see BIT_LENGTH
in the "SQL Reference" chapter of the JDataStore Developer's Guide.
The CASE
function returns a conditional value. For more information, see CASE
in the "SQL Reference" chapter of the JDataStore Developer's Guide.
The COALESCE
function returns the first non-NULL value from the expression list. For more information, see COALESCE
in the "SQL Reference" chapter of the JDataStore Developer's Guide.
The CURRENT_ROLE
function returns the current role, or NULL if no role has been set using the SET ROLE
statement. For more information, see CURRENT_ROLE
in the "SQL Reference" chapter of the JDataStore Developer's Guide.
The CURRENT_USER
function returns the name of the current user. For more information, see CURRENT_USER
in the "SQL Reference" chapter of the JDataStore Developer's Guide.
DB_ADMIN is a new JDataStore Java class whose methods are implemented in SQL as built-in stored procedures. Use DB_ADMIN
for various database administration tasks such as automatic failover, incremental backup, creating and managing datasources, viewing and managing connections, verifying tables, and displaying database privileges and properties, locks, status logs, procedure privileges, and roles granted.
DB_ADMIN in the "SQL Reference" chapter of the JDataStore Developer's Guide provides a brief description of each method, implemented as a SQL function. The description of each method includes a link to the exact implementation and com.borland.datastore.driver.DB_ADMIN.html
in the API reference. (The preceding link works when this document is in the JDataStore_home\doc
directory.)
You can call these methods from SQL using the CALL
statement. They can be called without creating a JAVA_METHOD
alias because JDataStore SQL recognizes the methods in DB_ADMIN
as built-in java methods.
DB_ADMIN provides the following methods:
ALTER_DATABASE
|
GET_MIRRORS
|
DB_UTIL is a new JDataStore Java class whose methods are implemented in SQL as built-in stored procedures. They are a collection of SQL utility functions that perform numeric, string and date/time operations on data stored in database tables.
DB_UTIL in the "SQL Reference" chapter of the JDataStore Developer's Guide provides a brief description of each method. The description of each method includes a link to the exact implementation in com.borland.datastore.driver.DB_ADMIN.html
in the API reference. (The preceding link works when this document is in the JDataStore_home\doc
directory.)
You can call these methods from SQL using the CALL
statement. They can be called without creating a JAVA_METHOD
alias because JDataStore SQL recognizes the methods in DB_ADMIN
as built-in java methods.
DB_UTIL provides the following methods
|
|
|
The NULLIF
function compares two expressions. It returns NULL if the expressions are equal. Otherwise, it returns the first expression. It is logically equivalent to the following CASE
expression:
CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END
For more information, see NULLIF
in the "SQL Reference" chapter of the JDataStore Developer's Guide.
The OCTET_LENGTH
function gives the length in bytes of a STRING
, INPUTSTREAM
, or OBJECT
value. For more information, see OCTET_LENGTH
in the "SQL Reference" chapter of the JDataStore Developer's Guide.
The USER
function returns the name of the current user; this function is the same as CURRENT_USER. For more information, see CURRENT_USER
in the "SQL Reference" chapter of the JDataStore Developer's Guide.
The CREATE SCHEMA
statement creates a name space for tables, views, and methods. You can use CREATE SCHEMA
to create multiple objects in one SQL statement. For a discussion of how schemas work in JDataStore, see CREATE SCHEMA
and DROP SCHEMA
in the "SQL Reference" chapter of the JDataStore Developer's Guide.
The DROP SCHEMA
statement deletes the specified schema. If the command is used without options, it is the same as specifying the RESTRICT
option: the schema to be dropped must be empty. The command fails if the schema contains any objects.
Note: The DROP SCHEMA
command used with the CASCADE
option is extremely powerful and should be used with caution. When this command is issued, it drops the schema and all of its objects and dependencies without any chance to change your mind. There is no undo.
The CREATE VIEW
statement creates a derived table by selecting specified columns from existing tables. Views provide a way of accessing a consistent subcollection of the data stored in one or more tables. When the data in the underlying tables changes, the view reflects this change.
For more information, see CREATE VIEW
in the "SQL Reference" chapter of the JDataStore Developer's Guide.
The ALTER VIEW
statement modifies a view without losing dependent views and existing GRANT
s. This statement can be used to change the name of a view, the columns that comprise the view, and whether the view has the WITH CHECK OPTION
constraint. For more information, see ALTER VIEW
in the "SQL Reference" chapter of the JDataStore Developer's Guide.
The DROP VIEW
statement drops the named view. By default, it fails if there are dependencies on the view. The CASCADE
option drops the view and any dependent views. For more information, see DROP VIEW
in the "SQL Reference" chapter of the JDataStore Developer's Guide.
The CREATE ROLE
statement creates a named role. To complete this functionality, you must GRANT
privileges to the role, and GRANT
the role to one or more users. To make use of the privileges acquired in this fashion, the user issues a SET ROLE
statement.
For more information, see CREATE ROLE
and the GRANT
statement in the "SQL Reference" chapter of the JDataStore Developer's Guide.
The SET ROLE
statement makes the named role active. The current user acquires all privileges assigned to that role. For more information, see SET ROLE
in the "SQL Reference" chapter of the JDataStore Developer's Guide.
The DROP ROLE
statement drops the specified role. For more information, see DROP ROLE
in the "SQL Reference" chapter of the JDataStore Developer's Guide.
There are three new options for the CREATE TABLE
statement:
For more information, see CREATE TABLE
in the "SQL Reference" chapter of the JDataStore Developer's Guide.
There are several new options for the ALTER TABLE
statement:
RESOLVABLE
or NOT RESOLVABLE
.For more information, see ALTER TABLE
in the "SQL Reference" chapter of the JDataStore Developer's Guide.
The DROP TABLE
statement deletes a table and its indexes from a JDataStore database. DROP TABLE
has two new options: RESTRICT
and CASCADE
.
The CREATE JAVA_CLASS
statement makes all public static methods of a Java class available to JDataStore SQL as stored procedures or UDFs. For more information, see CREATE JAVA_CLASS
in the "SQL Reference" chapter of the JDataStore Developer's Guide.
The DROP JAVA_CLASS
statement drops a stored class, making it unavailable for use in JDataStore SQL. For more information, see DROP JAVA_CLASS
in the "SQL Reference" chapter of the JDataStore Developer's Guide.
The GRANT
statement performs the following actions:
INSERT
or SELECT
—on tables or java methods to PUBLIC
, users, or roles.STARTUP
or RENAME
—to users or roles.For more information, see GRANT
in the "SQL Reference" chapter of the JDataStore Developer's Guide.
The REVOKE
statement performs a number of actions:
INSERT
or SELECT
—on tables or java methods from PUBLIC
, users, or roles. It has CASCADE
and RESTRICT
,options.STARTUP
or RENAME
—from users or roles.ADMIN
option from a role without revoking the role itself.GRANT
option from a privilege without revoking the privilege itself.For more information, see REVOKE
in the "SQL Reference" chapter of the JDataStore Developer's Guide.
The CREATE USER
statement adds the named user and associated password to the database. The password is case sensitive, the user name is not. For more information, see CREATE USER
in the "SQL Reference" chapter of the JDataStore Developer's Guide.
The ALTER USER
statement sets a new password for an existing user. For more information, see ALTER USER
in the "SQL Reference" chapter of the JDataStore Developer's Guide.
The DROP USER
statement drops a user and all objects that the user owns. It has RESTRICT
and CASCADE
options. For more information, see DROP USER
in the "SQL Reference" chapter of the JDataStore Developer's Guide.
The SET TRANSACTION
statement sets the properties for the following transaction. You can use it to specify the isolation level and whether the transaction is read-write or read-only. For more information, see SET TRANSACTION
in the "SQL Reference" chapter of the JDataStore Developer's Guide. See "Transaction management" in the "System Architecture" chapter for further discussion of JDataStore transaction management.
JDataStore SQL now provides a one-byte integer data type, TINYINT
(or BYTE
). For more information, see "Datatypes" in the "SQL Reference" chapter of the JDataStore Developer's Guide.
JDataStore now provides a greatly expanded list of JDBC escape functions. For a complete list, see "JDBC escape functions" the "SQL Reference" chapter of the JDataStore Developer's Guide.
JDataStore's new ISQL can be run in the SQL tab of the Server Console. These commands can also be issued from any system command console.
For a discussion of JDataStore new ISQL and a list of commands, see ISQL
in the "SQL Reference" chapter of the JDataStore Developer's Guide.
Mirroring
JDataStore 7 introduces the concept of Mirroring. The three different types of mirrors are
The mirrors can also be kept in synch with the source database in different ways. The different synchronization types are
You use mirrors to incrementally back up the primary database. When auto-failover is in place, mirrors also provide a mechanism whereby a mirror takes over as the primary database when the original primary mirror goes down or is isolated by network failure. Finally, directory mirrors provide load balancing, so that the workload is spread out appropriately between the primary database and its mirrors It is recommended that a directory mirror be used for configurations that enable automatic failover. This way if the primary mirror has failed over to a new server, the directory will know how to find it.
JdsExplorer has a Copy JDataStore item on the Tools menu. Its function is different in JDataStore 7 then in earlier versions of the product. In previous versions of JDataStore, choosing Tools|Copy JDataStore brought up the Copy Streams dialog box, and made you select exactly which streams to copy. Now this menu item brings up a dialog in which you copy an entire database file.
There is a new item on the JDataStore Tools menu: Copy Into Existing JDataStore. This item permits you to copy into an existing, empty JDataStore, which allows you to downgrade or encrypt databases.
To copy individual tables between databases, use the Tools|Import chose in JDSExplorer.
There are two new chapters in the JDataStore Developer's Guide.
The JDataStore implementation of the SQL language has been greatly enriched, and the SQL Reference chapter in the JDataStore Developer's Guide has been expanded and reorganized.
The JDBC escape syntax was not previously documented. It is now in the "JDBC escape syntax" in the "SQL Reference" chapter of the JDataStore Developer's Guide.
A Java stored procedure can produce a ResultSet
on the client by returning either a ResultSet
or a DataExpress DataSet
from the Java implementation of the stored procedure. The DataSet
is automatically converted to a ResultSet
for the user of the stored procedure.
Documentation on the feature has been expanded in JDataStore 7. For more information, see "Stored procedures and JDBC ResultSets" in the "Stored Procedures and UDFs" chapter of the JDataStore Developer's Guide.
The big issue in migrating older databases to JDataStore 7 is that JDataStore 7 has the concept of schemas, and older databases do not. In JDataStore 7, every table belongs to a schema: the schema name is part of the table name. In general, when a user creates an object such as a table or a view, that object belongs to the user's own schema. There are a number of issues regarding the use of schemas. It will be helpful to you to read CREATE SCHEMA
in the "SQL Reference" chapter of the JDataStore Developer's Guide to understand how JDataStore 7 uses schemas before proceeding with migration.
For additional detail on migrating older JDataStore databases to JDataStore 7, see "Migrating older databases to JDataStore 7" in the "JDBC Quickstart" chapter of the JDataStore Developer's Guide.
To make the latest version of JDataStore available to JBuilder and the Borland Enterprise Server (BES), you need to copy certain files form the JDataStore lib directory to the lib directory of the target product. The files are: beandt.jar, dbtools.jar, dx.jar, jds.jar, jdsremote.jar, and jdsserver.jar
For more information, see "Using JDataStore with JBuilder and the Borland Enterprise server" in the "JDBC Quickstart" chapter of the JDataStore Developer's Guide.
Field test note: For the field test, copying these files may cause some menu problems in JBuilder. These problems go away when you remove the copied files. This defect will be fixed for the final release.
There have been many significant improvements in High availability Mirrors as well as Read-Only Transactions
Modify output of date and time to include at least 2 digits for day, month, minute, second, hours
Remote JDBC driver improved server exception handling
A prepared query with a parameterized LIKE operator in the where clause e.g. "SELECT * FROM PERSON WHERE LASTNAME LIKE ?"was mistakenly executed with the parameter given first time the query was executed; thus subsequent executions would receive wrong results. This problem has been fixed.
A SQL query which uses an auto-increment field for a lookup or join may in certain circumstances yield the wrong result.
This problem has been fixed.
A workaround for users on Unix platforms who do not need to use AWT components in the designer and want to be able to select a printer that is different than lpr
is to comment out the line in the jbuilder.config
file that adds the LightWeight Toolkit to the boot path as shown:
# Put the Lightweight Toolkit on the boot path #addbootpath ../lib/lawt.jar
In order to run an applet on Solaris or Linux from within JBuilder, you must add the Open Tools SDK library to your project. Failing to add this library can lead to an exception about a "NoClassDefFoundError:AppletTestbed." This problem currently affects some of the applet samples, including the Primes Swing sample.
Warning: Name: HorScrollBar Class: XmScrollBar The specified scrollbar value is greater than the maximum scrollbar value minus the scrollbar slider size.
Optimizeit Request Analyzer could not find the directory where it was installed. Please perform the integration with JBuilder from Optimizeit again. Optimizeit Error: failed to find Request Analyzer classRequest Analyzer is not supported on the Macintosh.
The samples.html
file should be viewed in JBuilder or from the link in the Welcome Project if you want to use the links to load the project files in JBuilder. However, if you configure your file associations so that JBuilder projects are associated with JBuilder, you can view samples.html
in most web browsers, and the links to projects will work.
An easy way to copy the entire samples tree is to use the cp -R
command. For example, to copy the tree to a samples
subdirectory of your home directory, do the following:
% cd % cp -R /usr/local/jbuilder/samples
Filename property set to null
or URL cannot be null
, open the file in the editor, modify the source (such as a adding and removing a space), then rebuild the project. You should now be able to open the project in the Designer without errors.These are some suggestions for improving local performance of JBuilder.
vmparam -Xincgc
It is worth noting that the incremental garbage collector, while smoothing GC hiccups, also slows the VM down noticeably. We suggest using this only if you experience long garbage collection-induced pauses while using JBuilder.
[75607] If you are installing JBuilder to a Japanese NEC computer and the install program causes an operating system error message saying that "Drive C: is not ready... the drive door may be open...", press the <Ignore> button in this dialog. Install will then complete normally. (The <Abort> button should also work.)
[75704][75705] If you experience problems displaying Japanese fonts on Linux, you may need to update the file, <jdk1.3.1>/jre/lib/font.properties.ja
. JavaSoft's web site has instructions on how to do this in Japanese: Directions to modify the font.properties file (in Japanese).
<path_to_JBuilder>/lib/jbuilder.jar
must be on your classpath):
The first encoding option above is passed to the Virtual Machine and the second encoding option is passed to the compiler. Please note that this example assumes Code Page 850 is used in the console window (as shown by thejava -Dfile.encoding=Cp850 com.borland.compiler.frontend.Main -encoding Cp1252 myFile.java
chcp
command), and that your java files are encoded in Code Page 1252 (which is the case when a Windows based editor was used, rather than an "old style" DOS-based editor).
If your program sends accented characters to the console window, they will be displayed correctly if you use the following (assuming your console window uses Code Page 850, as shown by the DOS chcp
command):
java -Dfile.encoding=Cp850 myClassFile
IntlSwingSupport
is dropped on a Frame in the designer, it may be instantiated after other class members such as a JFileChooser
, JOptionPane
, or JColorChooser
, which means the translated resources are loaded too late for initial display purposes. Instantiating IntlSwingSupport
as early as possible during your application startup will fix this problem.JBuilder2005/bin/jbuilder.config:
vmparam -Dprimetime.editor.useVariableWidthFont=true
~/.jbuilder2005/user.properties
before launching JBuilder."jsp.default.encoding.override"
to specify the encoding they want in their specific applications. For example, add the following line to the jbuilder.config
file:
vmparam -Djsp.default.encoding.override=Shift_JIS
If your version of JBuilder does not contain the documentation PDF files on one of the product CDs, you can download them from the JBuilder Product Documentation web site: http://info.borland.com/techpubs/jbuilder. Also, check the JBuilder Product Documentation web site for updates to the documentation.
For the latest JBuilder FAQ's and TI's, please visit: